Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

القوائم المُسماة

جزء من قسم Fundamentals في رحلة R على Coddy — الدرس 74 من 78.

تماماً مثل المتجهات المسماة (named vectors)، يمكن أن يكون للقوائم (lists) أسماء مخصصة لعناصرها. هذا يجعل الكود الخاص بك أكثر قابلية للقراءة ويسمح لك بالوصول إلى العناصر من خلال تسميات ذات معنى بدلاً من المواقع الرقمية.

يمكنك تعيين أسماء عند إنشاء القائمة:

person <- list(name = "Alice", age = 25, active = TRUE)
print(person)

المخرجات:

$name
[1] "Alice"

$age
[1] 25

$active
[1] TRUE

لاحظ كيف يظهر المخرج الآن $name بدلاً من [[1]]. للوصول إلى العناصر المسماة، استخدم عامل $:

person <- list(name = "Alice", age = 25, active = TRUE)
print(person$age)

المخرج:

[1] 25

يمكنك أيضاً استخدام الأقواس المزدوجة مع الاسم كسلسلة نصية (string)، وهو أمر مفيد عندما يكون الاسم مخزناً في متغير:

person <- list(name = "Alice", age = 25)
print(person[["name"]])

المخرجات:

[1] "Alice"

تعديل العناصر المسماة يعمل بنفس الطريقة. استخدم $ لتغيير القيم الموجودة أو إضافة قيم جديدة:

person <- list(name = "Alice", age = 25)
person$age <- 26
person$city <- "Paris"
print(person)

المخرجات:

$name
[1] "Alice"

$age
[1] 26

$city
[1] "Paris"
challenge icon

التحدي

سهل

ستتلقى ثلاثة أسطر من المدخلات:

  1. عنوان الكتاب (على سبيل المثال، The Great Gatsby)
  2. مؤلف الكتاب (على سبيل المثال، F. Scott Fitzgerald)
  3. سنة النشر (على سبيل المثال، 1925)

قم بإجراء العمليات التالية:

  1. أنشئ قائمة مسماة تسمى book تحتوي على ثلاثة عناصر: title، و author، و year (قم بتحويل السنة إلى قيمة عددية numeric)
  2. اطبع عنوان الكتاب باستخدام عامل التشغيل $
  3. اطبع سنة الكتاب باستخدام الأقواس المربعة المزدوجة مع الاسم كسلسلة نصية (string)
  4. قم بتحديث year لتكون بعد عام واحد باستخدام عامل التشغيل $
  5. أضف عنصراً جديداً يسمى available بالقيمة TRUE
  6. اطبع القائمة المحدثة كاملة

على سبيل المثال، إذا كانت المدخلات هي:

1984
George Orwell
1949

يجب أن تكون المخرجات:

[1] "1984"
[1] 1949
$title
[1] "1984"

$author
[1] "George Orwell"

$year
[1] 1950

$available
[1] TRUE

الشرح:

  • book$title يطبع قيمة العنوان
  • book[["year"]] يطبع السنة الأصلية
  • يتم تحديث السنة من 1949 إلى 1950
  • تمت إضافة عنصر available جديد بالقيمة TRUE

ورقة مرجعية

يمكن أن تحتوي القوائم على أسماء مخصصة لعناصرها لتحسين إمكانية القراءة والوصول إليها عبر تسميات ذات معنى.

قم بإنشاء قائمة مسماة عن طريق تعيين الأسماء أثناء الإنشاء:

person <- list(name = "Alice", age = 25, active = TRUE)

الوصول إلى العناصر المسماة باستخدام عامل التشغيل $:

person$age  # يعيد 25

الوصول إلى العناصر المسماة باستخدام الأقواس المزدوجة مع الاسم كسلسلة نصية:

person[["name"]]  # يعيد "Alice"

تعديل العناصر المسماة الموجودة:

person$age <- 26

إضافة عناصر مسماة جديدة:

person$city <- "Paris"

جرّب بنفسك

# قراءة المدخلات
con <- file("stdin", "r")
title <- suppressWarnings(readLines(con, n = 1))
author <- suppressWarnings(readLines(con, n = 1))
year <- suppressWarnings(readLines(con, n = 1))
close(con)

# TODO: اكتب كودك أدناه
# 1. قم بإنشاء قائمة مسماة تسمى 'book' تحتوي على العناصر: title و author و year (قم بتحويل year إلى قيمة عددية)
# 2. اطبع عنوان الكتاب باستخدام عامل التشغيل $
# 3. اطبع سنة الكتاب باستخدام الأقواس المربعة المزدوجة مع الاسم كسلسلة نصية
# 4. قم بتحديث السنة لتكون بعد عام واحد باستخدام عامل التشغيل $
# 5. أضف عنصراً جديداً يسمى 'available' بقيمة TRUE
# 6. اطبع القائمة المحدثة كاملة
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Fundamentals