python array kullanımı / Python ile Dizi / Liste Kullanımı | Tüm Fonksiyonlar ve Örnekleri - Bilişim Hocam

Python Array Kullanımı

python array kullanımı

Python Liste Metotları

Listeye Eleman Ekleme

Python listelerinin sonuna bir eleman eklemek için append() metodu kullanılır.

Örnek

liste = ["banana", "grape", "cherry"] seafoodplus.info("apple") print(liste) # ["banana", "grape", "cherry","apple"]

Python listelerinde belirtilen bir indeks'e eleman eklemek için insert() metodu kullanılır.

liste = ["banana", "grape", "cherry"] seafoodplus.info(2,"apple") print(liste) # ["banana", "grape", "apple","cherry"]

Listeden Eleman Silme

Python listelerinden eleman silmek için kullanabileceğimiz farklı metotlar mevcuttur.

Listeden bir eleman silmek için remove() metodunu kullanabiliriz.

liste = ["banana", "grape", "cherry"] seafoodplus.info("grape") print(liste) # ["banana","cherry"]

Python listelerinde belirtilen bir indeks' deki elemanı silmek için pop() metodu kullanılır. Eğer indeks numarası belirtmezsek listenin son elemanı silinir.

liste = ["banana", "grape", "cherry"] seafoodplus.info(1) print(liste) # ["banana","cherry"]

İndeks numarası vermediğimizde ise son eleman silinir.

liste = ["banana", "grape", "cherry"] seafoodplus.info() print(liste) # ["banana", "grape"]

del() metodu ile her hangi bir indeks numarasındaki elemanı silebiliriz.

liste = ["banana", "grape", "cherry"] del liste[2] print(liste) # ["banana", "grape"]

Eğer ki del() metoduna indeks numarası vermezsek listeyi olduğu gibi siler.

liste = ["banana", "grape", "cherry"] del liste print(liste) # NameError: name 'list' is not defined

Bu durumda liste objesine ulaşmak istediğimizde NameError alırız ve açıklama da ise list tanımlanmadı şeklinde hata mesajı gelir.

Ayrıca del komutu ile listeyi sildiğimiz gibi clear() metodu ile de listeyi silebiliriz. Ancak arada ki fark del ile obje referansıda silindiğinde listeye ulaşmak istediğimizde NameError alırken clear() metodu ile hata almayız çünkü listenin referansı bellekte olmaya devam eder ancak içi boş olur.

liste = ["banana", "grape", "cherry"] seafoodplus.info() print(liste) # []

Gördüğünüz gibi print(liste) ile bize gelen değer [ ] boş liste tanımlamasıdır. Bellekte halen yer tutar ve bu liste üzerine tekrar eleman eklemeye devam edebiliriz.

Liste Kopyalama

List bir class ve bellekte referans tip olarak ele alınır dolayısıyla bir listeyi başka bir listeye atamak istediğimizde liste elamanları kopyalanmaz bunun yerine listenin bellekteki adres bilgisi kopyalanır.

a = ["apple","banana"] b = ["grape","cherry"] a = b

Burada b'nin adresi a listesine atanmıştır. Dolayısıyla artık a ve b listeleri belleğin aynı adresindeki aynı verilere sahiptir. (["grape","cherry"])

Dolayısıyla a ya da b üzerinde yaptığımız her hangi bir değişiklik iki liste üzerinde de yapılmış olur.

a = ["apple","banana"] b = ["grape","cherry"] a = b b[0] = "updated" print(a, b) # çıktı: ['updated', 'cherry'] ['updated', 'cherry']

Dolayısıyla listeleri kopyalarken kullanmamız gereken bazı liste metotları vardır.

Bir liste içeriğini başka bir listeye atamak için copy() metodunu kullanabiliriz.

a = ["apple","banana"] b = ["grape","cherry"] a = seafoodplus.info() b[0] = "updated" print(a, b) # çıktı: ['grape', 'cherry'] ['updated', 'cherry']

Gördüğünüz gibi atama işleminden sonra b[0] indeks üzerinde yaptığımız bir güncelleme artık a listesini etkilemedi çünkü iki listede farklı adreslere sahip birer objedir burada adres kopyalaması değil de sadece içlerindeki bilgiler kopyalanmıştır.

Liste kopyalamak için kullanabileceğimiz bir başka metor ise list() metodudur.

a = ["apple","banana"] b = ["grape","cherry"] a = list(b) b[0] = "updated" print(a, b) # çıktı: ['grape', 'cherry'] ['updated', 'cherry']

Liste Elemanlarını Sıralama

Liste elemanlarını sıralamak için sort() metodu kullanılır.

numbers = [1, 10, 5, 16, 4, 9, 10] letters = ['a', 'g', 's', 'b', 'y', 'a', 's'] seafoodplus.info() # sayısal büyüklük olarak küçükten büyüğe sıralanır. seafoodplus.info() # alfabetik olarak a-z' e doğru sıralanır.

Tersten sıralamak istediğimizde ise reverse=True parametresini gönderebiliriz.

seafoodplus.info(reverse=True) # sayısal büyüklük olarak büyükten küçüğe sıralanır. seafoodplus.info(reverse=True) # alfabetik olarak z-a'ya doğru sıralanır.

Liste elemanlarını reverse() metodu ile tersten yazdırabiliriz.

numbers = [1, 10, 5] letters = ['a', 'g', 's'] seafoodplus.infoe() # [5, 10, 1] seafoodplus.infoe() # ['s', 'g', 'a']

Diğer Liste Metotları

Min() ve Max() metodu

Bir liste içerisindeki minimum ve maksimum değeri ister sayısal ister alfabetik olarak alabiliriz.

numbers = [1, 10, 5, 16, 4, 9, 10] letters = ['a', 'g', 's', 'b', 'y', 'a', 's'] min(numbers) # 1 max(numbers) # 16 max(letters) # y min(letters) # a

Count() metodu

Bir liste içerisindeki tekrarlayan elemanların sayısını almak için count() metodunu kullanırız.

numbers = [1, 10, 5, 16, 4, 9, 10] letters = ['a', 'g', 's', 'b', 'y', 'a', 's'] seafoodplus.info(10) # 2 seafoodplus.info('a') # 2

Python Liste Metot Uygulamaları

names = ['Ali','Yağmur','Hakan','Deniz']

years = [, , , ]

1-  "Cenk" ismini listenin sonuna ekleyiniz.

seafoodplus.info('Cenk')

2-  "Sena" değerini listenin başına ekleyiniz.

seafoodplus.info(0, 'Sena') seafoodplus.info(-1, 'Mehmet') seafoodplus.info(len(names), 'Mehmet')

3-  "Deniz" ismini listeden siliniz.

seafoodplus.info('Deniz') seafoodplus.info() seafoodplus.info(1)

4-  "Deniz" isminin indeksi nedir ?

index  = seafoodplus.info('Deniz') seafoodplus.info(index)

5-  "Ali" listenin bir elemanı mıdır ?

result = 'Ali' in names result = seafoodplus.info('Ali')

6-  Liste elemanlarını ters çevirin.

seafoodplus.infoe()

7-  Liste elemanlarını alfabetik olarak sıralayınız.

seafoodplus.info()

8-  years listesini rakamsal büyüklüğe göre sıralayınız.

seafoodplus.info()

9-  str = "Chevrolet,Dacia" karakter dizisini listeye çeviriniz.

str = "Chevrolet,Dacia" result = seafoodplus.info(',')

 years dizisinin en büyük ve en küçük elemanı nedir ?

min = min(years) max = max(years) print(min, max)

 years dizisinde kaç tane  değeri vardır ?

result = seafoodplus.info()

 years dizisinin tüm elemanlarını siliniz.

seafoodplus.info()

 Kullanıcıdan alacağınız 3 tane marka bilgisini bir listede saklayınız.

markalar = [] marka = input("marka: ") seafoodplus.info(marka) marka = input("marka: ") seafoodplus.info(marka) marka = input("marka: ") seafoodplus.info(marka) print(markalar)

1.İç içe geçmiş listeler: işleme ve yazdırma

Gerçek dünyada Çok sayıda görev, dikdörtgen veri tablosunu saklamak zorundadır. [bu konuda daha fazlasını söyle!] Bu tablolara matrislerveya iki boyutlu diziler denir. Python'da herhangi bir tablo bir liste listesi olarak (her öğenin sırayla bir liste olduğu bir liste) temsil edilebilir. Örneğin, burada iki satır ve üç sütun içeren sayısal bir tablo oluşturan ve daha sonra bazı manipülasyonlar yapan program:
Nonea = [[1, 2, 3], [4, 5, 6]] print(a[0]) print(a[1]) b = a[0] print(b) print(a[0][2]) a[0][1] = 7 print(a) print(b) b[2] = 9 print(a[0]) print(b)

Birinci eleman - burada - numaralarının listesi . Bu yeni listenin ilk elemanı ; dahası, , , , , .

2 boyutlu diziyi işlemek için genellikle yuvalanmış döngüler kullanırsınız. Birinci döngü, satır numarası boyunca yinelenir, ikinci döngü, bir satırın içindeki elemanlar boyunca ilerler. Örneğin, ekran satırında iki boyutlu sayısal listeyi böylelikle satırlarla ayırarak, bu şekilde sırayla görüntülersiniz:

Nonea = [[1, 2, 3, 4], [5, 6], [7, 8, 9]] for i in range(len(a)): for j in range(len(a[i])): print(a[i][j], end=' ') print()

Python'daki bir for döngüsü değişkeninin sadece bir üzerinde değil, genellikle herhangi bir dizinin tüm öğeleri üzerinde yinelemediğini açıklamaya çalıştık. Python'daki diziler, listeler ve dizelerdir (ve henüz tanışmadığımız diğer nesneler). Eğer döngü bu kullanışlı özelliğini kullanarak, iki boyutlu bir dizi yazdırabilirsiniz Bak nasıl :

Nonea = [[1, 2, 3, 4], [5, 6], [7, 8, 9]] for row in a: for elem in row: print(elem, end=' ') print()

Doğal olarak, tek bir satır çıktılamak için method yöntemini kullanabilirsiniz:

for row in a: print(' '.join([str(elem) for elem in row]))

2 boyutlu listeden tüm sayıların toplamını hesaplamak için 2 yuvalanmış döngüyü kullanabilirsiniz:

Nonea = [[1, 2, 3, 4], [5, 6], [7, 8, 9]] s = 0 for i in range(len(a)): for j in range(len(a[i])): s += a[i][j] print(s)

Ya da ve değişkenleri tarafından değil, elemanlarla yinelenen ile aynı:

Nonea = [[1, 2, 3, 4], [5, 6], [7, 8, 9]] s = 0 for row in a: for elem in row: s += elem print(s)

Advertising by Google, may be based on your interests

2.İç içe geçmiş listeler: oluşturma

İki sayının verildiğini varsayalım: satır sayısı ve sütun sayısı . Sıfırla doldurulan × boyutunda bir liste oluşturmalısınız.

Açık çözüm yanlış görünüyor:

a = [[0] * m] * n

Bu, nın değerini ayarlarsanız ve sonra değerini basarsanız kolayca görülebilir. Bu aynı zamanda 5'e eşit olacaktır. Nedeni, , yalnızca bir sıfır listesi için bir başvuru döndürür, ancak bir liste değildir. Bu elemanın müteakip tekrarı, aynı listeye atıfta bulunan maddelerinin bir listesini oluşturur (aynı zamanda, işlem listeleri için yeni listeyi oluşturmaz), böylece sonuç listesindeki tüm satırlar aslında aynıdır. dize.

Görselleştiricimizi kullanarak listelerin kimliğini takip edin. İki liste aynı kimlik numarasına sahipse, aslında bellekte aynı liste.

Nonen = 3 m = 4 a = [[0] * m] * n a[0][0] = 5 print(a[1][0])

Böylece, iki boyutlu bir liste sadece bir dizgeyi tekrarlayarak oluşturulamaz. Ne yapalım?..

Olası bir yol: Eğer bir liste oluşturabilir (söyledikleriyle, elementlerin sıfır) ve daha sonra diğer öğelerden biri boyutlu listesine bir bağlantı her yapmak elemanları:

Nonen = 3 m = 4 a = [0] * n for i in range(n): a[i] = [0] * m

Başka (ama benzer) bir yol: boş bir liste oluşturun ve kez yeni bir eleman (bu eleman uzunluğunun bir listesi olmalıdır):

Nonen = 3 m = 4 a = [] for i in range(n): seafoodplus.info([0] * m)

Ancak en kolay yol, her biri sıfır sayısı olan öğelerinin bir listesini oluşturarak jeneratörü kullanmaktır:

Nonen = 3 m = 4 a = [[0] * m for i in range(n)]

Bu durumda, her eleman diğerlerinden bağımsız olarak oluşturulur. listesi yeni zaman olarak oluşturulur ve referansların kopyalanması gerçekleşmez.

Advertising by Google, may be based on your interests

3.İki boyutlu bir diziyi nasıl girersiniz?

Bir program, her biri boşluklarla ayrılmış sayıları içeren satırları şeklinde iki boyutlu diziyi girer. Programı okumak için nasıl zorlarsınız? Bunu nasıl yapabileceğinize bir örnek:

3 1 2 3 4 5 6 7 8 9 # İlk giriş satırı dizinin satır sayısıdır n = int(input()) a = [] for i in range(n): seafoodplus.info([int(j) for j in input().split()])

Ya da sofistike iç içe aramalar kullanmadan:

3 1 2 3 4 5 6 7 8 9 # İlk giriş satırı dizinin satır sayısıdır n = int(input()) a = [] for i in range(n): row = input().split() for i in range(len(row)): row[i] = int(row[i]) seafoodplus.info(row)

Jeneratörlerle aynısını yapabilirsiniz:

3 1 2 3 4 5 6 7 8 9 # İlk giriş satırı dizinin satır sayısıdır n = int(input()) a = [[int(j) for j in input().split()] for i in range(n)]

Advertising by Google, may be based on your interests

4.İki boyutlu bir dizinin işlenmesi: bir örnek

Bir kare dizi ( satır ve sütun dizisi) verildiğini varsayalım. Ve ana köşegen elemanların 1'e eşit olması gerektiğini varsayalım (yani, için olan bu elemanlar, o diyagonalin 0'a eşit olandan ötesine ayarlanması ve elemanların ayarlanmasıdır. Bu diyagonalin 2 altına eşittir. Yani, böyle bir dizi oluşturmanız gerekir (örnek ):

1 0 0 0 2 1 0 0 2 2 1 0 2 2 2 1 (Bu durumda, , vb. Ayarlayarak bunu manuel olarak yapabilirsiniz, ancak satır ve sütun dizisi için el ile yapmazsınız. çoğu zaman durum böyle.)

Bu sorunu çözmenin birkaç yolunu göstermek için sabırsızlanıyoruz. Unsurlardır - İlk olarak, ana diyagonal üzerinde bulunan elemanlar dikkat olan ana diyagonal aşağıdaki elemanları ve bu . Böylece, nin değerini belirleyen ve değerlerini karşılaştırabiliriz. Aşağıdaki algoritmayı alıyoruz:

Nonen = 4 a = [[0] * n for i in range(n)] for i in range(n): for j in range(n): if i < j: a[i][j] = 0 elif i > j: a[i][j] = 2 else: a[i][j] = 1 for row in a: print(' '.join([str(elem) for elem in row]))

Bu algoritma yavaştır: iki döngü kullanır ve her çift için yönergeler bir veya iki yürütür. Eğer algoritmayı karmaşıklaştırırsak, şartlı bir açıklama yapmadan bunu yapabiliriz.

İlk olarak, bir döngüye ihtiyacımız olan ana köşegeni doldurun:

for i in range(n): a[i][i] = 1

Ardından, ana diyagonalin üzerindeki tüm elemanları sıfırlarla doldurun. Numarası ile her satır için, bu hale getirmek için size bir değer atamak için gereken için = , , . Bunu yapmak için iç içe döngülere ihtiyacınız var:

for i in range(n): for j in range(i + 1, n): a[i][j] = 0

Benzer şekilde = , için, elemanları eşit olarak ayarlar:

for i in range(n): for j in range(0, i): a[i][j] = 2

Tüm bu kodu birleştirebilir ve başka bir çözüm alabilirsiniz:

Nonen = 4 a = [[0] * n for i in range(n)] for i in range(n): for j in range(0, i): a[i][j] = 2 a[i][i] = 1 for j in range(i + 1, n): a[i][j] = 0 for row in a: print(' '.join([str(elem) for elem in row]))

Listenin bir sonraki satırlarını oluşturmak için listeleri tekrarlayan başka bir çözüm. Listenin hattı rakamı, ardından tam sayı, sıfırdan oluşur.

Nonen = 4 a = [0] * n for i in range(n): a[i] = [2] * i + [1] + [0] * (n - i - 1) for row in a: print(' '.join([str(elem) for elem in row]))

Her zaman olduğu gibi, döngüyü jeneratörle değiştirebilirsiniz:

Nonen = 4 a = [0] * n a = [[2] * i + [1] + [0] * (n - i - 1) for i in range(n)] for row in a: print(' '.join([str(elem) for elem in row]))

Advertising by Google, may be based on your interests

5.İki boyutlu diziler: iç içe jeneratörler

İki boyutlu diziler oluşturmak için iç içe jeneratörler kullanabilir, bir dizge olan listenin jeneratörünü tüm dizelerin oluşturucusunun içine yerleştirebilirsiniz. Jeneratörü kullanarak satır ve sütunların bir listesini oluşturabileceğinizi hatırlayın (bu, her elemanın sıfırlar listesi olduğu öğelerinin bir listesini oluşturur):

[[0] * m for i in range(n)]

Ancak iç liste, örneğin, bu tür bir jeneratör kullanılarak da oluşturulabilir: . Bir jeneratörü diğerine yerleştirmek, elde ederiz

[[0 for j in range(m)] for i in range(n)]

Sorunumuzla nasıl bağlantılı? Sorun şu ki, 0 sayısı (satır numarası) ve (sütun numarası) bağlı olan bir ifadeyle değiştirilirse, matrisin bazı formüllere göre doldurulur.

Örneğin, aşağıdaki diziyi başlatmanız gerektiğini varsayalım (kolaylık için, öğeler arasında ekstra boşluklar eklenir):

0 0 0 0 0 0 0 1 2 3 4 5 0 2 4 6 8 10 0 3 6 9 12 15 0 4 8 12 16 20

Bu dizide satır, sütun vardır ve satır indeksi ve sütun dizini olan öğe, formülüyle hesaplanır.

Her zaman olduğu gibi, böyle bir dizi oluşturmak için jeneratörü kullanabilirsiniz:

[[i * j for j in range(m)] for i in range(n)]

Advertising by Google, may be based on your interests

nest...

batman iftar saati 2021 viranşehir kaç kilometre seferberlik ne demek namaz nasıl kılınır ve hangi dualar okunur özel jimer anlamlı bayram mesajı maxoak 50.000 mah powerbank cin tırnağı nedir