2010-10-25 17 views
57

Python'da yeniyim. Özellikle işlev çağrılarıyla ilişkili olduğunda liste dizinlerinde kullanılan :'u görüyorum. Python 2.7 belgeleri, lists.append'un a[len(a):] = [x]'a çevrildiğini önerir. Neden bir kolon ile len(a) sonek gerekir?Kolon (:) in Python liste indeksi

:, sözlükteki anahtarları tanımlamak için kullanılır.

+4

Python 4.7'yi nereden bulabilirim? Benim istediğim! 2.7'de [Öğretici] (http://docs.python.org/tutorial/introduction.html#lists) sorunuzu oldukça güzel bir şekilde ele alır. – aaronasterling

cevap

94

:[start:end]

[1:5] is equivalent to "from 1 to 5" (5 not included) 
[1:] is equivalent to "1 to end" 
[len(a):] is equivalent to "from length of a to end" 

İzle http://www.youtube.com/watch?v=tKTZoB2Vjuk civarında 40:00 o açıklayan başlar 'kesmekistediğinde' dizileri alt kısımlar için dilim sözdizimi ayırıcı olduğunu.

Ayrıca, tuple, sözlükler ve listelerle çalışır. Dilimleme operatörü

+7

[1: 5] 'in, dizin 1'de nesne ile başladığını ve dizin 5'teki nesnenin dahil olmadığını unutmayın. Ayrıca, [:] –

+2

ile bir listenin yumuşak bir kopyasını yapabilirsiniz. Çünkü aslında ':' gibi bir Google noktalama işareti bu kadar kolay değil, özellikle cevabınızı bulmayı takdir ettim ve yardımcı oldu. Sembolhound gibi bir şey kullansa bile, çok sık kullandım ki korktum hızlıca bir cevap bulamazdım. –

+0

Sözlüklerle çalışmıyor. d [: 5] uygulaması, d .__ getitem __ (slice (0, 5, None)) eşdeğeridir. Bir dilim yıkanabilir değildir. –

7

a[len(a):] - Bu size sonuna kadar bir uzunluk verir. Bir aralık seçer. a[:len(a)]'u ters çevirirseniz, len(a)'un ne olduğuna dair bir başlangıç ​​alırsınız.