bazı noktalar: Listede inşa gölge çünkü
, değişken adı
list
kullanmayın.
Burada listelerin bir listesi var, ve bu listelerden bazılarıboş alanı değil, boş bir dize içeriyor. ' '
.
söyleniyor
, herhangi alt liste x
içerir kaç boş dizeler saymak ve bu iki sayısıdır eşitse, bir liste anlama yardımıyla yeni bir liste haline koyabilirsiniz:
>>> lst = [[u'Kr', u'Se', ''],[u'Fe', '', ''],[u'Ca', '', '']]
>>> result = [x for x in lst if x.count('') == 2]
>>> result
[[u'Fe', '', ''], [u'Ca', '', '']]
Bu davranış arzu edilmez
>>> result[0][0] = 'Xe'
>>> result
[['Xe', '', ''], [u'Ca', '', '']]
>>> lst
[[u'Kr', u'Se', ''], ['Xe', '', ''], [u'Ca', '', '']]
, liste anlama da listelerin kopyalarını (oluşturun: burada bir şey kopyalamak edemediğinden, sublists değişiklikler onlar için/tüm referanslar arasında isimleri görülecektir unutmayın önceki eski sadece bir fark
>>> lst = [[u'Kr', u'Se', ''],[u'Fe', '', ''],[u'Ca', '', '']]
>>> result = [x[:] for x in lst if x.count('') == 2]
>>> result
[[u'Fe', '', ''], [u'Ca', '', '']]
>>> result[0][0] = 'Xe'
>>> result
[['Xe', '', ''], [u'Ca', '', '']]
>>> lst
[[u'Kr', u'Se', ''], [u'Fe', '', ''], [u'Ca', '', '']]
Hey, işe aldın: bol
x[:]
yerine)x
arasında kullanımı nedir? Cevabım yardım etti mi? – timgeb