いくつかのポインタ:あなたがリストに組み込まれて影になるので
は、変数名list
を使用しないでください。
ここにリストのリストがあり、そのリストの一部に空白の文字列''
が含まれています。空白ではなく、' '
となります。
言われて、あなたは、任意のサブリストx
が含まれているどのように多くの空の文字列を数えることができ、そのカウントが2に等しい場合、リスト内包の助けを借りて、新しいリストにそれらを置くことを:
>>> 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', ''], ['Xe', '', ''], [u'Ca', '', '']]
:私たちはここに何をコピーしなかったので、サブリストへの変更は、彼らのためにすべての参照/名前渡って見られることに注意してください以前のexとの差のみ十分にx[:]
代わりのx
)の使用である:
>>> 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', '', '']]
ねえ、あなたはそれが動作するようになりましたか?私の答えは助けになりましたか? – timgeb