Python'daki bir listeden ilk öğe olan 3. ve 200. elemanlar ile 201st elemanının son öğe içinden 3. adımda olmasını istiyorum. old_list
sadece bir indeksi ile bunu yapmanın bir yolu var mıPython: boşluklu dilimler için kısa sözdizimi?
new_list = old_list[0:1] + old_list[3:201] + old_list[201::3]
:
bir yolu ayrı endeksleme ve birleştirme aracılığı ile olduğunu yapmalı?
new_list = old_list[[0, 3:201, 201::3]]
Ben bazılarını elde edebilirsiniz: (Sadece yakın bir şey arıyorum liste endeksleri listeleri olamaz ve Python beri maalesef doesn't have slice literals beri bu değil biliyorum sözdizimsel işi) Ben aşağıdaki gibi bir şey istiyorum Bu, NumPy dizilerine geçerek, ancak yerel Python listeleri için nasıl yapılacağıyla ilgileniyorum. Ayrıca, a slice maker veya bunun gibi bir şey yaratabiliyordum ve muhtemelen benim istediğim tüm dilimlerin kompozisyonunu temsil etmek için eşdeğer bir dilim nesnesi vermek için güçlü bir kol oluşturabiliyordum.
Dilleri yönetmek için yeni bir sınıf oluşturmayı gerektirmeyen bir şey arıyorum. Ben sadece dilim sözdizimini bir araya getirmek ve bunu listeme beslemek ve listenin dilimlerini ayrı ayrı almanın ve sonuçların sonunda sonuçlarının birleştirilmesi gerektiğini anlamasını istiyorum.
"Python maalesef dilim ilkellerine sahip değildir" Dilim bile değil mi? –
Üzgünüm, dilim harfleri değil, dilim ilkellerini söylemeliydim. Yani, sözdiziminin (0: 10: 2) sözdizimini, her zaman indeksleri temsil eden bir nesne gibi geçemezsiniz. Dilim sözdiziminin tüm güzellerini yok eden kendi dilim nesnesini yapmak için can sıkıcı ekstra katmandan geçmek zorundasınız. Benim de [yukarıda da bağlantılı olan soruyu] gör (http://stackoverflow.com/questions/13706258/passing-python-slice-syntax-around-to-functions). – ely