Aralıklar ile Dizi Dilimleme
Coddy'nin Ruby Journey'sinin Temeller bölümünün bir parçası — ders 69 / 88.
Bazen tek tek öğelere erişmek yerine bir dizinin bir bölümünü çıkarmanız gerekir. Ruby, aralıkları kullanarak dizileri dilimlemenize olanak tanır; bu işlem, yalnızca belirttiğiniz öğeleri içeren yeni bir dizi oluşturur.
Bir diziyi bir aralıkla dilimlemek için, aralığı köşeli parantezlerin içine yerleştirin:
numbers = [10, 20, 30, 40, 50]
slice = numbers[1..3]
puts slice # Çıktı: 20, 30, 401..3 aralığı 1, 2 ve 3 numaralı dizinlerdeki öğeleri içerir. Dizi dizinlerinin 0'dan başladığını unutmayın, bu nedenle dizin 1 ikinci öğedir.
Son dizini hariç tutmak için üç noktalı aralığı (...) da kullanabilirsiniz:
letters = ["a", "b", "c", "d", "e"]
slice = letters[0...3]
puts slice # Çıktı: a, b, cBurada, 0...3 0, 1 ve 2 dizinlerini içerir, ancak 3. dizinden önce durur.
Negatif indeksler aralıklarla da çalışır. Dizinin sonundan geriye doğru sayarlar; -1 son öğedir:
colors = ["red", "green", "blue", "yellow"]
slice = colors[1..-1]
puts slice # Çıktı: green, blue, yellowBu, dizinin uzunluğunu bilmeden ilk öğeyi atlamak istediğinizde yararlı olan, dizin 1'den son öğeye kadar her şeyi çıkarır.
Görev
Kolayİki girdi okuyun:
- Virgülle ayrılmış tam sayılardan oluşan tek bir satır (örneğin,
10,20,30,40,50,60,70) start..endveyastart...endformatında bir aralık belirtimi (örneğin,2..5veya1...4)
İlk girdiyi bir tam sayı dizisine bölün. Ardından, diziyi dilimlemek için ikinci girdideki aralığı kullanın ve dilimlenen kısmın her bir öğesini kendi satırında yazdırın.
Aralık girdisi, bitiş dizinini dahil etmek için iki nokta (..) veya hariç tutmak için üç nokta (...) kullanacaktır.
Örneğin, girdiler 10,20,30,40,50,60,70 ve 2..5 ise çıktı şu şekilde olmalıdır:
30
40
50
60Girdiler 5,10,15,20,25,30 ve 0...3 ise çıktı şu şekilde olmalıdır:
5
10
15Girdiler 100,200,300,400,500 ve 1..-1 ise çıktı şu şekilde olmalıdır:
200
300
400
500Girdiler a,b,c,d,e,f ve -3..-1 ise çıktı şu şekilde olmalıdır:
d
e
fKopya kağıdı
Bir dizinin bir bölümünü ayıklamak için köşeli parantez içinde aralıkları kullanın:
numbers = [10, 20, 30, 40, 50]
slice = numbers[1..3]
# [20, 30, 40] döner (1, 2 ve 3. indeksler)Bitiş indeksini dahil etmek için iki nokta (..) kullanın:
letters = ["a", "b", "c", "d", "e"]
slice = letters[0..2]
# ["a", "b", "c"] döner (0, 1 ve 2. indeksler)Bitiş indeksini hariç tutmak için üç nokta (...) kullanın:
letters = ["a", "b", "c", "d", "e"]
slice = letters[0...3]
# ["a", "b", "c"] döner (0, 1 ve 2. indeksler, 3'ten önce durur)Negatif indeksler dizinin sonundan geriye doğru sayar (-1 son elemandır):
colors = ["red", "green", "blue", "yellow"]
slice = colors[1..-1]
# ["green", "blue", "yellow"] döner (indeks 1'den son elemana kadar)Kendin dene
# Virgülle ayrılmış değerleri oku
input_values = gets.chomp
# Aralık belirtecini oku
range_spec = gets.chomp
# TODO: Kodunuzu aşağıya yazın
# 1. input_values değerini bir diziye ayırın
# 2. Başlangıç, bitiş ve .. mı yoksa ... mı kullanılacağını belirlemek için range_spec'i ayrıştırın
# 3. Uygun aralığı kullanarak diziyi dilimleyin
# 4. Dilimlenen kısmın her bir öğesini kendi satırında yazdırınBu 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
4Operatörler Bölüm 2
Mantıksal Operatörler Bölüm 1Mantıksal Operatörler Bölüm 2Özet - Basit MantıkMantıksal Operatörler Bölüm 3Mantıksal Operatörler Bölüm 47Hesap Paylaşımı Hesaplayıcısı
Hoş Geldiniz MesajıKullanıcı Girdisi Alma13İleri Seviye Diziler
Aralıklar ile Dizi Dilimlemeİndeksler ile Dizi DilimlemeDizi OperatörleriInclude? Metodu2Değişkenler ve Veri Tipleri
Sayılar ve DeğişkenlerString Veri TipiBoolean Veri TipiSymbol Veri TipiVeri Tiplerini Kontrol Etmeİsimlendirme KurallarıÖzet - Değişken Oluşturma8Döngüler
Aralıklar ile For DöngüsüWhile DöngüsüBreakNextÖzet - FaktöriyelTimes DöngüsüUntil Döngüsüİç İçe DöngülerÖzet - Dinamik Girdi3Operatörler Bölüm 1
Aritmetik OperatörlerModulo OperatörüAritmetik KısayollarÖzet - Basit MatematikKarşılaştırma Operatörleri6Temel IO
puts ile Çıktı Almaprint ve p ile Çıktı AlmaDeğişkenlerle Çıktı Almagets ile Girdi AlmaChomp MetoduTip DönüşümüÖzet - Yaş HesaplayıcıÖzet - Doğru mu Yanlış mı9Metotlar
Metot TanımlamaMetot ParametreleriDönüş DeğerleriÖzet - Sigma MetoduÖzet - Doğrulama MetoduVarsayılan Parametre Değerleri12Koleksiyonlar Üzerinde Yineleme
Each Yineleyicisiİndeks ile EachStringler Üzerinde YinelemeMap ve Collect