3

私はpythonが初めてで、リストからアイテムを削除するにはどうすればよいか疑問に思っています。リストがあるとします:

a=[(102,12,0),(123,12,0),(124,12,1)]

最後に 0 がある項目を削除したいので、リストは次のようになります。

a = [(124,12,1)]
4

3 に答える 3

6

ここ:

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)]
>>> 
于 2012-12-27T13:55:22.007 に答える
2

リスト内包表記を使用できます

val[-1]valが反復中に使用される変数であると仮定すると、最後に 0 のタプルが得られます。

したがって、コードは次のようになります。

a = [val for val in a if val[-1]]
于 2012-12-27T13:59:27.130 に答える
1

ワンライナーリストの理解ほど素晴らしいものではありませんが、それでもトリックを行います:)。

b = tuple
for tple in a:
    b = b + tple
result = tuple
for val in set(b):
    if val % 10 != 0:
        result = result + (val,)
于 2012-12-28T08:23:11.640 に答える