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

تعديل القوائم

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

الآن بعد أن عرفت كيفية إنشاء القوائم والوصول إلى عناصرها، دعنا نتعلم كيفية تعديلها. يمكنك تغيير العناصر الموجودة، أو إضافة عناصر جديدة، أو إزالة العناصر تمامًا.

لتغيير عنصر موجود، استخدم الأقواس المزدوجة مع التعيين:

my_list <- list(10, "hello", TRUE)
my_list[[2]] <- "world"
print(my_list)

المخرجات:

[[1]]
[1] 10

[[2]]
[1] "world"

[[3]]
[1] TRUE

لإضافة عنصر جديد، ما عليك سوى التعيين إلى فهرس غير موجود بعد:

my_list <- list(10, "hello")
my_list[[3]] <- FALSE
print(my_list)

المخرجات:

[[1]]
[1] 10

[[2]]
[1] "hello"

[[3]]
[1] FALSE

لإزالة عنصر، قم بتعيين NULL له:

my_list <- list(10, "hello", TRUE)
my_list[[2]] <- NULL
print(my_list)

المخرجات:

[[1]]
[1] 10

[[2]]
[1] TRUE

لاحظ أنه بعد إزالة العنصر الثاني، تنزاح العناصر المتبقية لملء الفجوة. العنصر الذي كان في الموضع 3 أصبح الآن في الموضع 2.

challenge icon

التحدي

سهل

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

  1. ثلاث قيم مفصولة بفاصلة لتهيئة قائمة (على سبيل المثال، 50,hello,TRUE)
  2. فهرس (index) وقيمة جديدة مفصولان بفاصلة للتعديل (على سبيل المثال، 2,goodbye)
  3. فهرس العنصر المراد إزالته (على سبيل المثال، 3)

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

  1. أنشئ قائمة بالقيم الثلاث الأولية (قم بتحويلها إلى الأنواع المناسبة: numeric، character، logical)
  2. اطبع القائمة الأصلية
  3. قم بتعديل العنصر الموجود في الفهرس المحدد بالقيمة الجديدة (احتفظ بها كسلسلة نصية character string)
  4. اطبع القائمة بعد التعديل
  5. أضف عنصراً رابعاً جديداً إلى القائمة بالقيمة 999
  6. اطبع القائمة بعد إضافة العنصر الجديد
  7. قم بإزالة العنصر الموجود في الفهرس المحدد (من المدخل الثالث)
  8. اطبع القائمة النهائية

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

100,world,FALSE
1,updated
2

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

[[1]]
[1] 100

[[2]]
[1] "world"

[[3]]
[1] FALSE

[[1]]
[1] "updated"

[[2]]
[1] "world"

[[3]]
[1] FALSE

[[1]]
[1] "updated"

[[2]]
[1] "world"

[[3]]
[1] FALSE

[[4]]
[1] 999

[[1]]
[1] "updated"

[[2]]
[1] FALSE

[[3]]
[1] 999

التفسير:

  • القائمة الأصلية: 100, "world", FALSE
  • بعد تعديل الفهرس 1: "updated", "world", FALSE
  • بعد إضافة العنصر الرابع: "updated", "world", FALSE, 999
  • بعد إزالة الفهرس 2: "updated", FALSE, 999 (تنتقل العناصر المتبقية)

تذكر استخدام الأقواس المزدوجة [[ ]] للتعديلات وتعيين NULL لإزالة العناصر.

جرّب بنفسك

# قراءة المدخلات
con <- file("stdin", "r")
initial_values <- suppressWarnings(readLines(con, n = 1))  # ثلاث قيم مفصولة بفواصل
modify_input <- suppressWarnings(readLines(con, n = 1))    # الفهرس والقيمة الجديدة
remove_index <- suppressWarnings(readLines(con, n = 1))    # الفهرس المراد إزالته
close(con)

# تحليل القيم الأولية
values <- strsplit(initial_values, ",")[[1]]
val1 <- as.numeric(values[1])
val2 <- values[2]
val3 <- as.logical(values[3])

# تحليل مدخلات التعديل
mod_parts <- strsplit(modify_input, ",")[[1]]
mod_index <- as.numeric(mod_parts[1])
mod_value <- mod_parts[2]

# تحليل فهرس الإزالة
rem_index <- as.numeric(remove_index)

# TODO: اكتب الكود الخاص بك أدناه
# 1. قم بإنشاء قائمة بالقيم الثلاث الأولية (val1, val2, val3)
# 2. اطبع القائمة الأصلية
# 3. قم بتعديل العنصر عند mod_index باستخدام mod_value
# 4. اطبع القائمة بعد التعديل
# 5. أضف عنصراً رابعاً جديداً بالقيمة 999
# 6. اطبع القائمة بعد الإضافة
# 7. قم بإزالة العنصر الموجود في rem_index (استخدم NULL)
# 8. اطبع القائمة النهائية
quiz iconاختبر نفسك

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

جميع دروس Fundamentals