Diziler ve sözlüklerle çalışma
Dizi — değer koleksiyonunu (dizi elemanları denir) depolayan ve her biri bir indeksle tanımlanan bir veri yapısıdır. Köşeli parantezler [] kullanılarak tanımlanır. Örneğin, q = [] ifadesi q değişkeninin boş bir dizi tuttuğu anlamına gelir. Eğer q = [2, 5, 7, 4, 9] ise, dizi 5 eleman içerir — bu onun uzunluğudur. Elemanların dizideki konumlarını temsil eden indeksler 0'dan başlar. Yani, "2" elemanının indeksi 0'dır ve bizim dizimizdeki "4" elemanının indeksi 3'tür.

Örnek: array=[1,2,3,4] veya array1=["anne","baba","oğul","kız"]
Bir dizi elemanına erişme örneği: array[1] (2 değerini döndürür)
Sözlük — verileri depolayan, özel olarak düzenlenmiş bir eleman kümesini temsil eden bir veri yapısıdır. Tüm veriler anahtar-değer çiftleri biçiminde saklanır. Veri öğelerine erişim anahtar kullanılarak yapılır. Bir anahtar, tek bir sözlük içinde her zaman benzersiz olmalıdır; veriler (değerler) ise gerekirse yinelenebilir.
Örnek: {"SLU":12345,"Name":"Erkek tişörtü, beyaz","Size":50,"Price":1000}
Bir dizi elemanına erişme örneği: dictionary["Array"] (12345 değerini döndürür)
Hem diziler hem de sözlükler karmaşık veya iç içe yapılar içerebilir — yani birbirlerini içerebilirler. Örneğin:
sözlük dizisi: products=[{"SKU":12345,"Name":"Erkek tişörtü, beyaz","Size":50,"Price":1000},{"SKU":12346,"Name":"Erkek tişörtü, beyaz","Size":52,"Price":1000}]
İfade s = {} ifadesi, s değişkeninin hiçbir eleman içermeyen bir sözlük tuttuğu anlamına gelir. Buna bir anahtar-değer çifti, hatta birkaç tane ekleyebiliriz: s = {"key1":"value1", "key2":"value2","key3":"value3"} Her anahtar ve değer tırnak içine alınır, anahtar ile değer arasına iki nokta konur ve anahtar-değer çiftleri virgülle ayrılır.
Diziler ve sözlükler iç içe olabilir. Bir örneğe bakalım:
rainbow = [red, orange, yellow, green, light blue, blue, purple] - bu bir dizidir.
Şöyle yazarsak
rainbow = {"every":"red","hunter":"orange","wants":" yellow","know":"green","where":"light blue","sits":"blue","pheasant":"purple"}
- bir sözlük elde ederiz
Gökkuşağına yakından bakarsak, örneğin açık mavi renginin daha karmaşık olduğunu ve turkuaz, açık mavi ve koyu maviden oluştuğunu görebiliriz. Şöyle yazalım: light blue = [turquoise,light blue, dark blue]. Şimdi "blue" dizimizi "rainbow" sözlüğüne gömelim:
rainbow = {"first_color":"kırmızı","second_color":"turuncu","third_color":"sarı","forth_color":"yeşil","sixth_color":"mavi","last_color":"mor"}
Peki örneğin "turkuaz" gibi bir elemanın adresini nasıl belirtiriz?
Dizilerde adresleme indeksile yapılır, bu yüzden "turkuaz" elemanının adresi 0'dır.
Bunu özetleyelim: ["where"][0] - "turkuaz" elemanının adresidir.


Adresleme ile nasıl çalışılır (JSON)
API üzerinden üçüncü taraf hizmetlerden yanıt alırken, çoğunlukla bir sözlükü temsil eden JSON alırız. Çoğu zaman, bu sözlükten belirli bir değeri bir değişkende saklamamız gerekir.
JSON'da adresleme ilkesini anlamanın en iyi yolu bir örnektir:{"suggestions": [{"value": "Dirham", "unrestricted_value": "Dirham", "data": {"code": "784", "strcode": "AED", "name": "Dirham", "country": "UAE"}}]}
Burada tek bir anahtar-değer çifti içeren bir sözlüğümüz var suggestions - dizinin anahtarı: [{"value": "Dirham", "unrestricted_value": "Dirham", "data": {"code": "784", "strcode": "AED", "name": "Dirham", "country": "UAE"}}]
Anahtarın suggestions değeri yalnızca bir eleman içeren bir dizidir — bir sözlük: {"value": "Dirham", "unrestricted_value": "Dirham", "data": {"code": "784", "strcode": "AED", "name": "Dirham", "country": "UAE"}} suggestions|0 - dizinin ilk (ve tek) elemanının anahtarıdır.{"value": "Dirham", "unrestricted_value": "Dirham", "data": {"code": "784", "strcode": "AED", "name": "Dirham", "country": "UAE"}}
suggestions|0|value - "Belarus rublesi" değerinin anahtarıdır
{"suggestions": [{"value": "Dirham", "unrestricted_value": "Dirham", "data": {"code": "784", "strcode": "AED", "name": "Dirham", "country": "UAE"}}]}
Bu JSON'daki en uzun anahtar yolu: suggestions|0|data|strcode - AED için anahtardır

{"suggestions": [{"value": "Dirham", "unrestricted_value": "Dirham", "data": {"code": "784", "strcode": "AED", "name": "Dirham", "country": "UAE"}}]}
Anahtarlar dikey çizgi ile ayrılır. JSON bir dizi içeriyorsa, elemanlara erişim 0'dan başlayan indeksle yapılır ve yine dikey çizgi kullanılarak yazılır. Dizi indeksleme 0'dan başlar.
Adreslemede sayılar, dizelerle aynı şekilde ele alınır ve tersi de geçerlidir. Örneğin, '6' ve 6 eşit kabul edilir.
API yanıtlarına ek olarak, diziler ve sözlükler verileri rahatça saklamak için de kullanılabilir.
Örneğin, bir botun belirli bir bölümüne erişimi yalnızca belirli kullanıcılara kısıtlamanız gerekiyorsa, onların ID'lerini bir dizide saklayabilir, bunu global bir proje değişkenine koyabilir ve blok koşullarında veya ok mantığında kullanarak kullanıcının ID'sinin dizide olup olmadığını kontrol edebilirsiniz.
Başka bir örnek, takım oyunda her oyuncu için puan sayısını saklamanız gerektiğinde ortaya çıkar. Bunun için anahtarların kullanıcı ID'leri, değerlerin ise puanları olduğu bir sözlük kullanabilirsiniz.
Bazen bir dizi veya sözlüğü değiştirmek gerekir. Bu makalede açıklanan işlevler tam olarak bu amaç için tasarlanmıştır. Aşağıda açıklanan yöntemlerin çoğu hem dizilerle hem de sözlüklerle çalışır.
Dizilerle çalışma
Dizi nasıl oluşturulur
Dizi oluşturma - bir dizi tanımlama
array_name = []
Dizi nasıl temizlenir
Bir diziyi temizlemek, özünde boş bir dizi tanımlamakla aynıdır:
array_name = []
Dizi elemanına nasıl erişilir
Bir dizideki değer nasıl değiştirilir
Örnek
Örnek:
Belirli bir dizi elemanının değerini değiştirmek için şu sözdizimini kullanın: array_name[index] = value

Cevap:

Bir elemanın dizide olup olmadığı nasıl kontrol edilir
Açıklama
in_array(mass, value) - bir elemanın dizide olup olmadığını kontrol etmek için.
Parametreler: ! mass - dizi ! value - aranacak değer
Değerin bulunup bulunmadığına bağlı olarak True veya False döndürür.
Dizi uzunluğu nasıl öğrenilir
Açıklama
arr_len(mass) - dizi uzunluğunu öğrenmek için
Parametre: ! mass - dizi
Sonuç: Sayı döndürür - dizi uzunluğu.
Parametreleri fonksiyona aktarırken dikkatli olun! Parametre verilmeden çağrılırsa 0 döndürür; parametre ne dizi ne de sözlükse -1 döndürür.
Bir diziye sonuna eleman nasıl eklenir?
Açıklama
append(mass, element, priznak) - bir dizinin sonuna eleman eklemek için.
Parametreler:
! mass - dizi ! element - eklenecek eleman priznak - bunun dizi mi sözlük mü olduğunu belirten bayrak
Sonuna değer eklenmiş diziyi döndürür. Orijinal diziyi güncellemek için şu atamayı kullanın: mass = append(mass, element, priznak)
Varsayılan olarak veriler dize olarak eklenir. Bir dizi veya sözlük eklemeniz gerekiyorsa, ek bir True parametresi geçin. Bu, JSON eklediğinizi belirtir.
Örnek
Kullanım örneği:


Bir diziye ekleme ve diziden çıkarma örneği:

p project.pzdr dizisinden çıkarılıyorİçinde diziler bulunan bir dizi oluşturma örneği:

Fonksiyon çalıştırma sonucu:

Bir dizide belirli bir konuma eleman nasıl eklenir
Açıklama
insert(mass, index, value, priznak) - bir elemanı belirli bir dizi konumuna eklemek için.
Parametreler: ! mass - dizi ! index - ekleme konumu ! value - value gösterge - bir diziye mi yoksa bir sözlüğe mi eklendiğini belirten gösterge.
Sonuç: Değerin belirtilen konuma eklendiği bir dizi döndürür. Başka bir deyişle, değeri aynı diziye eklemek için aşağıdaki biçimdeki komutu kullanın: mass = insert(mass, index, value, indicator)
Varsayılan olarak veriler dize olarak eklenir. Bir dizi veya sözlük eklemeniz gerekiyorsa, ek bir True parametresi geçin. Bu, JSON eklediğinizi belirtir..
Örnek
Örnek:

Sonuç:
Daha karmaşık bir örneğe bakalım - s dizisine t sözlüğü ekleme:

Fonksiyonda, 1. konuma bir sözlük eklemek istediğimizi belirttik. Sonuca bakalım:

Diziden eleman nasıl silinir
del() | del | remove()
Açıklama
İndekse göre
del(mass, key) - bir elemanı indeksine göre diziden kaldırır.
Parametreler: ! mass - dizi adı; ! key - kaldırılacak değerin indeksi
Elemanı kaldırılmış yeni bir dizi döndürür; orijinal dizi değişmeden kalır. Aynı diziyi silmek ve güncellemek için şu komutu kullanın: mass = del(mass, key)
Eğer diziniz sayılar içeriyorsa ve bir elemanı değere göre kaldırmak istiyorsanız, remove() fonksiyonunu kullanın.
del name['index'] - bir değeri diziden indeksle kaldırma
Parametreler: ! name- dizi adı; ! index- kaldırılacak değerin indeksi
Değere göre
remove(mass, value) - bir değeri bir diziden silmek için dizi.
Parametreler: ! mass - dizi adı; ! value - diziden kaldırılacak değer
Sonuç: Orijinal diziyi değiştirmeden bırakarak değiştirilmiş bir dizi döndürür. Bir elemanı kaldırıp aynı diziyi güncellemek için aşağıdaki biçimdeki komutu kullanın: mass = remove(mass, key)
Bir elemanın dizideki konumu nasıl bulunur
Açıklama
index(mass, value)
Parametreler: ! mass - dizi adı ! value - konumu belirlenmesi gereken değer.
Eleman dizide yoksa, fonksiyon -1 döndürür.
Örnekler
Bir elemanın dizideki konumunu belirleme örneği:

Sonucu ayrıntılı olarak biraz daha yakından inceleyelim:

Gördüğümüz gibi, 5 sayısı dizide olmadığından fonksiyon -1 döndürdü.
Bir diziyi insan tarafından okunabilir metne dönüştürme
Açıklama
massive_to_text(massive, header, numbered,delimiter1,delimiter2)
Parametreler:
! massive – görüntülenecek dizi, header – çıktının başında görünecek bir başlık numbered – herhangi bir değer geçirilirse, dizi elemanları numaralandırılır delimiter1 – her eleman satırının sonunda yer alan karakter (varsayılan ‘;’), delimiter2 – numaralandırma etkin olduğunda öğe numarasından sonra kullanılan karakter (varsayılan ‘)’)
Bir diziyi başka bir diziden hariç tutma
Açıklama
except_arr(mas1, mas2)
Parametreler:
! mas1 - elemanları hariç tutulacak dizi, ! mas2 - hariç tutulacak elemanları içeren dizi
Dizilerin kesişimi nasıl bulunur
Açıklama
cross_arr(mas1, mas2)
Parametreler:
! mas1 - içinde aranacak dizi ! mas2 - aranacak elemanları içeren dizi
Diziler nasıl birleştirilir
Açıklama
Dizileri birleştirmek için özel bir yerleşik işlev yoktur, ancak kolayca yapılabilir:
Dizileri birleştirmek için önce dize birleştirmesi yapın, ardından '][' ifadesini virgülle ',' değiştirin
Bir dizinin elemanları nasıl toplanır
Açıklama
sum_array(array)
Parametreler:
dizi - elemanlarının toplanması gereken dizi
Dikkat! Fonksiyon belirli bir biçimdeki dizilerle çalışır.
Kabul edilen biçimler: - [1,2,3,4] veya ‘[1,2,3,4]’. Dizi içinde dize olarak temsil edilen sayılar varsa, bunlar çift tırnak içine alınmalıdır — örneğin, [1,2,3,”-4”]. Dizi alfabetik dizeler içeriyorsa, hesaplama başarısız olur.
Hatalı kullanım örneği: mas = [1,2,3,"a"] result = sum_array(mas)
Bu, bir hataya yol açacaktır: dizide desteklenmeyen elemanlar var
Bir dizinin elemanları nasıl karıştırılır
Dizileri ve sözlükleri sıralama için
sort() | sort_by_value()
Açıklama
Bir dizide veya sözlükte sıralama
sort(mass, b) - bir diziyi değere göre, bir sözlüğü ise anahtara göre sıralar
Parametreler:
! mass - dizi/sözlük b - sıralama düzeni (False – artan (varsayılan), True – azalan)
Sözlüğü değerine göre sıralama
sort_by_value(dict, b) - bir sözlüğü değerlere göre sıralar.
Parametreler: ! dict- sözlük b - sıralama düzeni (False – artan (varsayılan), True – azalan)
Örnek
Bir diziyi azalan, bir sözlüğü ise artan düzende sıralama örneği:


Bir sözlüğü değerlere göre sıralama:


Bir dizi/sözlüğü düğmelere dönüştürme
tools_make_button_str_checker() | tools_check_user_input()
Açıklama
Bir dizi/sözlüğü düğmelere dönüştürme
tools_make_button_str_checker(values_list, key, in_line, button_type, checker_with_numbers)
Parametreler:
! values_list - verileri klavye veya numaralı liste oluşturmak için kullanılacak dize veya sözlük dizisi
key - sözlük dizisinden seçim yapmak için kullanılacak anahtar
in_line - satır başına düğme sayısı (varsayılan: 1)
button_type - düğme türü (varsayılan: yanıt klavyesi). Olası değerler: 0 - yanıt klavyesi, 1 - satır içi klavye (metin içindeki düğmeler)
checker_with_numbers - "checker" dizisine düğme numaraları eklenip eklenmeyeceği. Olası değerler: 0 - numara ekleme, 1 - numara ekle (varsayılan: 1 – numara ekle)
Fonksiyon sonucu — şu biçimde bir sözlük:
{"numbered_list":"1. Tişörtler\n2. Şortlar\n3. Çoraplar\n4. Şapkalar\n","buttons":[{"type":"inline","text":"Tişörtler","line":0,"index_in_line":0},{"type":"inline","text":"Şortlar","line":0,"index_in_line":1},{"type":"inline","text":"Çoraplar","line":1,"index_in_line":0},{"type":"inline","text":"Şapkalar","line":1,"index_in_line":1}],"checker":"Tişörtler;1;Şortlar;2;Çoraplar;3;Şapkalar;4;"}
Daha sonra sözlük değerleri yapıcıdaki alanlara eklenebilir:


Müşteri seçimine göre bir sözlük değerini alma
tools_check_user_input(values_list, user_input, key, return_key)
Parametreler:
! values_list - verileri klavye veya numaralı liste oluşturmak için kullanılacak dize veya sözlük dizisi Sözlük örneği: [{"text":"Tişörtler","price":100},{"text":"Şortlar","price":150},{"text":"Çoraplar","price":20},{"text":"Şapkalar","price":50}] ! user_input - kullanıcının values_list içindeki değerlerden biri olarak girdiği değer Değer örneği: Şapkalar key - sözlük dizisinden seçim yapmak için kullanılan anahtar Anahtar örneği: text return_key - values_list içinden belirtilen anahtar için döndürülen değer Dönüş değeri örneği: price
Örnek
Fonksiyon kullanımını bir alışveriş sepeti örneği üzerinden inceleyelim:
1. Bir dizi tanımlayın ve bunu tools_make_button_str_checker() fonksiyonunu kullanarak numaralı listeye, düğmelere ve olası değerler listesine dönüştürün (düğmesiz mesajlaşma uygulamaları için).


2. Ürün seçimini etkinleştirmek için elde edilen buttons ve numbered_list değerlerini kullanın:

3. Müşterinin girdisini doğrulamak için olası değerler checker listesini kullanın:

4. Son olarak, seçilen ürünün fiyatını müşteriye gösterin. Bunu tools_check_user_input() fonksiyonunu kullanarak yapmak uygundur

Bir diziden veri seçme
Açıklama
array_slice(array, start_index, end_index)
Parametreler:
! dizi - dizi ! start_index - dilimin başlangıcı end_index - dilimin sonu (varsayılan: sonuna kadar)
Örnek
1. elemandan başlayarak bir alt dizi seçelim:

res ["Şortlar", "Çoraplar", "Şapkalar"] olacaktır
Dizinin 0. elemanından 2. elemanına kadar bir alt dizi seçme başka bir örnek:

res ["Tişörtler", "Şortlar"] olacaktır
Dizi elemanlarını açma
Fonksiyon
unpack_list(array, var_name) - bu yöntem bir diziyi dolaşır ve dizideki her eleman için var1, var2, var3 vb. gibi adlarla ayrı bir değişken oluşturur.
! array - zorunlu parametre, elemanlardan oluşan bir dizi
var_name - isteğe bağlı parametre, bir dize. Sağlanırsa, açılan elemanları adlandırmak için kullanılır. Örnekler:
var_name verilirse, değişken adları var_name kullanılarak oluşturulur
var_name değişken adlandırma kurallarına uygun olmalıdır.
Örnek
Örnek 1:
array1 = ["bir", "iki", "üç"]
ans1 = unpack_list(array1)
Sonuç - oluşturulan ayrı değişkenler:
var1 = 'bir'
var2 = 'iki'
var3 = 'üç'
Örnek 2:
array2 = ["bir", "iki", "üç"]
var_name = 'custom'
ans2 = unpack_list(array2, var_name)
Sonuç - oluşturulan ayrı değişkenler:
custom1 = 'bir'
custom2 = 'iki'
custom3 = 'üç'
Tekrarlanan elemanlar içermeyen liste nasıl döndürülür
Açıklama
remove_duplicates(array) - tekrarlanan elemanlar içermeyen bir liste döndürür.
! array - zorunlu parametre. Tekrarlı elemanlar içeren orijinal liste.
Örnek
Örnek:
arr = [1, 2, 5, 1, 5, 3]
new_arr = remove_duplicates(arr)
Sonuç - [1, 2, 5, 3] listesi new_arr değişkenine atanacaktır.
Sözlük nasıl oluşturulur
Sözlük nasıl temizlenir
Sözlük değeri anahtara göre nasıl alınır
Örnekler
Bir sözlükle çalışma örneği:
Bu özel durumda, değere "a" anahtarıyla erişiyoruz. Bir sözlükten belirli bir anahtar kullanarak değer almak için şu biçimi kullanın: name_dictionary["key"]

Cevap:

Bir sözlükten anahtar listesi nasıl alınır
Bir sözlükten değer listesi nasıl alınır
Belirtilen anahtara göre sözlük listesinden değerler nasıl alınır
Açıklama
get_values_by_key(data, key) - belirtilen anahtara göre sözlük listesinden değer almanızı sağlar. Bir değer listesi döndürür.
Bir sözlükteki değer nasıl değiştirilir
Açıklama
name['key'] = value - sözlük öğesinin değerini belirtilen anahtara göre değiştirme. Var olmayan bir anahtar belirtilirse, yeni bir sözlük öğesi eklenecektir.
Açıklama
Örnek:
Belirli bir dizi öğesinin değerini değiştirmek için, array gibi bir atama yazın_name[index] = value veya dictionary_name[key] = value

Cevap:

Bir sözlüğe değer nasıl eklenir
Açıklama
dictionary_name['key'] = 'value' - sözlüğe yeni bir değer ekleme.
Anahtar daha önce mevcut değilse, yeni bir anahtar-değer çifti eklenecektir; aksi takdirde, belirtilen anahtarın değeri değiştirilecektir.
Bir sözlükte anahtarın mevcut olup olmadığı nasıl kontrol edilir
Açıklama
exist_key(mass, key) - bir sözlükte anahtarın mevcut olup olmadığını kontrol etmek için.
Parametreler:
mass - dictionary
key - aranacak anahtar
Anahtarın bulunup bulunmadığına bağlı olarak True veya False döndürür.
Bir sözlükte bir anahtarın konumu nasıl kontrol edilir
Açıklama
key_index(mass, key) - bir sözlükte bir anahtarın konumunu kontrol etmek için.
Parametreler: mass - sözlük key - Aranacak anahtar.
Bir sözlükteki konum 0'dan itibaren sayılır. Yani, ilk öğe 0, ikinci öğe 1'dir ve böyle devam eder.
Bir sözlükteki öğe sayısı nasıl alınır
Açıklama
arr_len(mass) - bir sözlüğün uzunluğunu belirlemek için.
Parametre: mass - dictionary
Sonuç: Bir sayı döndürür – sözlüğün uzunluğu.
Dikkatli olun Bir parametre işleve geçirilirken: işlev parametresiz çağrılırsa 0 döndürür; parametre bir liste veya sözlük değilse -1 döndürür.
Bir sözlükten öğe nasıl silinir
Açıklama
Dizine veya anahtara göre
del(mass, key) - bir listedeki öğeyi dizine göre veya bir sözlükteki öğeyi anahtara göre silmek için. İki parametre alır: liste/sözlük ve silinecek dizin/anahtar. Orijinal nesneyi değiştirmeden değiştirilmiş sözlüğü veya listeyi döndürür.
Bir liste veya sözlükteki değerler sayı ise, bir öğeyi silmek için remove() işlevini kullanın.
Kopyalanacak kod örneği
Bir sözlükle örnek
s={"1":123, "2":234, "q":{"w":"e"}}
q=del(s,'q')
Bir diziyle örnek
s=["John", "Ann", "Sophie"]
q=del(s, 1)
Bir sözlük insan tarafından okunabilir metne nasıl dönüştürülür
Açıklama
humanize(dict, delimiter, from_i, to_i)
Parametreler:
dict - sözlük adı delimiter - satırlar arasındaki ayırıcı from_i - çıktının başlayacağı öğenin dizini (0 tabanlı) to_i - çıktının biteceği öğenin dizini (dahil değil)
Sözlükleri sıralamak için
sort() | sort_by_value()
Açıklama
Sözlük sıralama
sort(dict, b) - Bir listeyi değere göre ve bir sözlüğü anahtara göre sıralar
Parametreler:
! dict- sözlük
b - sıralama yönü (varsayılan olarak False – artan, True – azalan)
Değere göre sözlük sıralama
sort_by_value(dict, b) - Bir sözlüğü değerlere göre sıralama.
Parametreler:
! dict- sözlük
b - sıralama yönü (varsayılan olarak False – artan, True – azalan)
Örnekler
Örnek: bir listeyi azalan düzende ve bir sözlüğü artan düzende sıralama:


Bir sözlüğü değerlerine göre sıralama:


Kopyalanacak kod örneği
Örnek: bir listeyi azalan düzende ve bir sözlüğü artan düzende sıralama:
array1=[5,4,0,6,3,0]
array1=sort(array1, True)
dict={"Ann":5, "John":4, "Sophie":0, "Alex":6, "Kate":3, "Harry":0}
dict=sort(dict)
Bir sözlüğü değerlerine göre sıralama:
dict={"Ann":5, "John":4, "Sophie":0, "Alex":6, "Kate":3, "Harry":0}
dict=sort_by_value(dict)
Last updated







































