Menu
Coddy logo textTech

Listeleri Düzenleme

Coddy'nin R Journey'sinin Temeller bölümünün bir parçası — ders 73 / 78.

Artık listeleri nasıl oluşturacağınızı ve öğelerine nasıl erişeceğinizi bildiğinize göre, onları nasıl değiştireceğinizi öğrenelim. Mevcut öğeleri değiştirebilir, yenilerini ekleyebilir veya öğeleri tamamen kaldırabilirsiniz.

Mevcut bir öğeyi değiştirmek için atama ile birlikte çift köşeli parantez kullanın:

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

Çıktı:

[[1]]
[1] 10

[[2]]
[1] "world"

[[3]]
[1] TRUE

Yeni bir öğe eklemek için, henüz mevcut olmayan bir dizine atama yapmanız yeterlidir:

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

Çıktı:

[[1]]
[1] 10

[[2]]
[1] "hello"

[[3]]
[1] FALSE

Bir öğeyi kaldırmak için ona NULL atayın:

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

Çıktı:

[[1]]
[1] 10

[[2]]
[1] TRUE

İkinci öğeyi kaldırdıktan sonra, kalan öğelerin boşluğu doldurmak için kaydığına dikkat edin. 3. konumda olan öğe artık 2. konumdadır.

challenge icon

Görev

Kolay

Üç satırlık bir girdi alacaksınız:

  1. Bir listeyi başlatmak için virgülle ayrılmış üç değer (örneğin, 50,hello,TRUE)
  2. Değişiklik için virgülle ayrılmış bir dizin ve yeni bir değer (örneğin, 2,goodbye)
  3. Kaldırılacak öğenin dizini (örneğin, 3)

Aşağıdaki işlemleri gerçekleştirin:

  1. Üç başlangıç değeriyle bir liste oluşturun (bunları uygun türlere dönüştürün: sayısal, karakter, mantıksal)
  2. Orijinal listeyi yazdırın
  3. Belirtilen dizindeki öğeyi yeni değerle değiştirin (karakter dizisi olarak tutun)
  4. Değişiklikten sonra listeyi yazdırın
  5. Listeye 999 değeriyle yeni bir dördüncü öğe ekleyin
  6. Yeni öğe eklendikten sonra listeyi yazdırın
  7. Belirtilen dizindeki öğeyi kaldırın (üçüncü girdiden gelen dizin)
  8. Son listeyi yazdırın

Örneğin, girdiler şunlarsa:

100,world,FALSE
1,updated
2

Çıktı şöyle olmalıdır:

[[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

Açıklama:

  • Orijinal liste: 100, "world", FALSE
  • 1. dizin değiştirildikten sonra: "updated", "world", FALSE
  • Dördüncü öğe eklendikten sonra: "updated", "world", FALSE, 999
  • 2. dizin kaldırıldıktan sonra: "updated", FALSE, 999 (kalan öğeler kayar)

Değişiklikler için çift köşeli parantez [[ ]] kullanmayı ve öğeleri kaldırmak için NULL atamayı unutmayın.

Kendin dene

# Girdiyi oku
con <- file("stdin", "r")
initial_values <- suppressWarnings(readLines(con, n = 1))  # Virgülle ayrılmış üç değer
modify_input <- suppressWarnings(readLines(con, n = 1))    # İndeks ve yeni değer
remove_index <- suppressWarnings(readLines(con, n = 1))    # Kaldırılacak indeks
close(con)

# Başlangıç değerlerini ayrıştır
values <- strsplit(initial_values, ",")[[1]]
val1 <- as.numeric(values[1])
val2 <- values[2]
val3 <- as.logical(values[3])

# Değişiklik girdisini ayrıştır
mod_parts <- strsplit(modify_input, ",")[[1]]
mod_index <- as.numeric(mod_parts[1])
mod_value <- mod_parts[2]

# Kaldırma indeksini ayrıştır
rem_index <- as.numeric(remove_index)

# TODO: Kodunuzu aşağıya yazın
# 1. Üç başlangıç değeriyle (val1, val2, val3) bir liste oluşturun
# 2. Orijinal listeyi yazdırın
# 3. mod_index konumundaki öğeyi mod_value ile değiştirin
# 4. Değişiklikten sonra listeyi yazdırın
# 5. 999 değeriyle yeni bir dördüncü eleman ekleyin
# 6. Ekleme işleminden sonra listeyi yazdırın
# 7. rem_index konumundaki elemanı kaldırın (NULL kullanın)
# 8. Son listeyi yazdırın
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler