Düzensiz Diziler
Coddy'nin GDScript Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 16 / 78.
2B dizininin satırlarının aynı uzunlukta olması gerekmez. Satırları farklı uzunluklarda olan 2B diziye jagged array denir. Burada her satır bir oyuncunun puanlarını içerir ve oyuncular farklı sayıda tur oynamıştır:
var scores := [
[90, 85, 70],
[60],
[75, 80]
]
print(scores[0].size()) # 3
print(scores[1].size()) # 1Girintili bir dizide, scores[0].size() her satırın uzunluğu değildir. Geçerli satırın sütunları üzerinde scores[r].size() ile döngü yap:
for r in range(scores.size()):
var total := 0
for c in range(scores[r].size()):
total += scores[r][c]
print("Player ", r + 1, ": ", total)Player 1: 245
Player 2: 60
Player 3: 155İlk satırın uzunluğunu her zaman kullanan bir döngü, daha kısa satırların sonunu aşar: scores[1][2] hatalıdır, çünkü 1. satırda yalnızca 0 indeksi vardır. for value in row üzerinden geçilen satıra her zaman uyar.
Her satırın uzunluğu farklı olacak şekilde, bir ızgara gibi düzensiz bir dizi oluşturursun. Bu üçgende, r satırında r + 1 hücre bulunur:
var triangle := []
for r in range(4):
var row := []
for c in range(r + 1):
row.append("*")
triangle.append(row)
for row in triangle:
print("".join(row))*
**
***
****Bir satır boş bile olabilir: [[1, 2], [], [3]], üç satırlı geçerli bir basamaklı dizidir.
Görev
KolayTek parametre olarak int türünde n alan make_triangle adlı bir işlev yazın. n satırlı bir düzensiz dizi döndürür:
- 1. satırda 1 hücre, 2. satırda 2 hücre bulunur ve bu böyle devam eder;
n. satırdanhücre bulunur. - Satırları ve sütunları 1'den başlayarak sayarsak her hücre, satır numarası ile sütun numarasının çarpımını içerir. 3. satır, 2. sütundaki hücre
3 * 2 = 6değerini içerir.
Örneğin, make_triangle(3) şunu döndürür:
[[1], [2, 4], [3, 6, 9]]Testler make_triangle() işlevini kendileri çağırır ve döndürülen diziyi denetler. İşlevi çağırmayın ve hiçbir şey yazdırmayın.
Kendin dene
func make_triangle(n: int):
# Kodu buraya yazın
pass
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık ve Akış bölümündeki tüm dersler
1String’leri Derinlemesine İnceleme
String MetotlarıString’lerde AramaDeğiştirme ve KırpmaBölme ve BirleştirmeTekrar: Kullanıcı Adı Kontrolü4Sözlükler Bölüm 2
İç İçe SözlüklerSözlük DizileriSözlükleri BirleştirmeSözlükleri KopyalamaTekrar - Frekans Sayacı10İleri Düzey Fonksiyonlar
Birden Fazla Değer DöndürmeLambda Fonksiyonları Bölüm 1Lambda Fonksiyonları Bölüm 2Tekrar - Lambda ile SıralamaÖzyinelemeli Fonksiyonlar Bölüm 1Özyinelemeli Fonksiyonlar Bölüm 2Tekrar - İç İçe Dizilerin Toplamı13Envanter Yönetim Sistemi
Projeye Genel BakışÜrün Ekle2İleri Düzey Karar Verme
Değişkenlerle EşleştirmeEşleştirme KoşullarıDizi KalıplarıSözlük KalıplarıÜyelik KontrolleriÖzet - Komut Ayrıştırıcı5Rehber Uygulaması
Menüyü GörüntüleKişi Ekle8Öğrenci Kayıt Yöneticisi
Proje Genel BakışıÖğrenci Ekle11Üst Düzey Fonksiyonlar
map Metodufilter Metodureduce Metoduany ve allTekrar - E-posta DoğrulayıcıTekrar - Sayı İşleyici3Çok Boyutlu Diziler
2B Dizilere Giriş2B Dizi Elemanlarına Erişim2B Dizilerle İç İçe DöngülerTekrar - 2B DizilerDüzensiz DizilerYaygın 2B Dizi ÖrüntüleriTekrar - Oyun Tahtası6Sözlüklerle Kümeler
Küme Nedir?Küme Olarak SözlükEkleme ve SilmeBirleşim ve KesişimKüme FarkıTekrar: Yinelenenleri Silme9Gelişmiş Veri Toplama
Değerleri ToplamaEn Küçük ve En Büyük Değeri BulmaÖzel SıralamaÖzet - Sözlük SıralayıcıKendi başına pratik yap: Online GDScript derleyicisi