私はpythonが初めてで、リストからアイテムを削除するにはどうすればよいか疑問に思っています。リストがあるとします:
a=[(102,12,0),(123,12,0),(124,12,1)]
最後に 0 がある項目を削除したいので、リストは次のようになります。
a = [(124,12,1)]
ここ:
a = [i for i in a if i[-1] != 0] #list comprehension (1 line) method.
親リストが宛先リストでもある場合に、リストを理解せずに行う「通常の」方法。
tmp = []
for i in a:
if i[-1] != 0:
tmp.append(i)
a = tmp
実際に:
>>> a=[(102,12,0),(123,12,0),(124,12,1)]
>>> a = [i for i in a if i[-1] != 0]
>>> a
[(124, 12, 1)]
>>>
リスト内包表記を使用できます
val[-1]
val
が反復中に使用される変数であると仮定すると、最後に 0 のタプルが得られます。
したがって、コードは次のようになります。
a = [val for val in a if val[-1]]
ワンライナーリストの理解ほど素晴らしいものではありませんが、それでもトリックを行います:)。
b = tuple
for tple in a:
b = b + tple
result = tuple
for val in set(b):
if val % 10 != 0:
result = result + (val,)