2015-06-21 27 views
5

Listeleri karşılaştırmak için eşitsizlik operatörleri kullanırken Python davranışını anlamakta zorluk çeker.Python eşitsizliği operatörleri; listeleri karşılaştırmak

>>> [8] < [7] 
False 
>>> [8] < [9] 
True 
>>> [8, 6] < [9] 
True 
>>> [8, 6] < [9, 7]  
True     # So far so good 
>>> [8, 6] < [9, 5]  
True     # Huh? 

Yani, açıkça Python sadece paralel endeksler aracılığıyla hareket etmiyor: Burada python3 komut satırı yorumlayıcısı kullanılarak parçacık İşte. Bu senaryoda, Python'un "alfabetik olarak" anlamına gelen "sözcükbilgisel olarak" listelerini verdiğini söyleyen bazı bilgiler buldum.

>>> [1, 2, 3] < [3, 2, 1] 
True 

Benim tahminim oldu dahili karşılaştırma olacağını [1, 2, 3:

Yani, belki listeleri sıraya dizilir ve paralel tarafından karşılaştırıldığında, ancak bu aşağıdaki örnekte ile çürütülmüştü edilir olsun düşünce ] yanlış 1 < 1 beri yanlış geri gereken < [1, 2, 3], 2 < 2 vb ..

herhangi bir yardım takdir, False.

+0

'86' <'95' alfabetik listesinde, değil mi? Genelleştirilmiş: Dizileri karşılaştırırken, sol eleman "en önemli" dir. Bir liste sadece başka bir dizidir. –

cevap

1

Aslında çok anlam ifade ediyor.

Karşılaştırma, sözcükleri, sözcükbilimsel sırayla sıralayacağınız gibi yapılır. Sonuçta, kelimeler de listelerdir: karakter listeleri.

İlk önce ilk öğeyi düşünün. Biri küçültülürse, tüm sıra daha küçüktür, eşitse, ikinci öğeye taşınırsınız.

Açıkça "86", "az" "bc" den önce gelir. ve "100", "90" dan önce gelir.

Diğer here. Python ne yapar, sadece paralel olarak listelerin üzerine gidin ve aynı indeks unsurlarını karşılaştırın.

3

açıkça Python sadece paralel endeksler

Evet öyle

üzerinden hareket değildir ve buna eşit mukayese etmeyin değerleri bulduğu ilk defa durur. Bu gerçekten sözlüksel düzendir. Örneklerinizdeki sayıların harflerle ve dizelerle listelenmesi:

4

İlk kez eşit olmayan unsurlarla karşılaştığı zaman, bu sonucu döndürür.

karşılaştırarak kelime olarak aynıdır:

"Peter" > "Peer" 

ilk iki harf

aynıdır, üçüncü farklıdır ve sonucu veriyor. Bu, (listeler için) bir sözlükte kullanılan aynı teknik, sadece karakterler yerine liste öğeleriyle birlikte.

Ek bilgi: (Padraic Cunningham tarafından önerildiği gibi): Bir liste daha kısa ve tüm öğeler daha kısa listenin boyutuna kadar aynı olduğunda, daha uzun liste daha büyük sayılır. Bu, normal (kağıt) sözlüklerde de aynıdır.

+1

Veya tüm öğeler daha kısa liste –

+0

uzunluğuna eşitse, daha uzun liste daha büyük kabul edilir Teşekkürler, bu bilgi eklendi – Juergen

İlgili konular