1

私がリストを持っているとしましょう:

[(12,34,1),(123,34,1),(21,23,1)]

1リスト内の各タプルからを削除して、次のようになります。

[(12,34),(123,34),(21,23)]
4

5 に答える 5

3

タプルを切り捨てたい場合は、リスト内包表記を使用します。

[t[:-1] for t in listoftuples]

または、簡単なデモンストレーションとして:

>>> listoftuples = [(12,34,1),(123,34,1),(21,23,1)]
>>> [t[:-1] for t in listoftuples]
[(12, 34), (123, 34), (21, 23)]
于 2012-12-28T14:06:16.203 に答える
2

タプルは不変であるため、アイテムを削除することはできません。ただし、不要な要素を含まない古いタプルから新しいタプルを作成することはできます。したがって、タプルのリストから各タプルから任意の項目を削除するには、次のようにします。

def deleteItem(lst, toDel):
    return [tuple(x for x in y if x != toDel) for y in lst]

結果:

>>> lst = [(12,34,1),(123,34,1),(21,23,1)]
>>> deleteItem(lst, 1)
[(12, 34), (123, 34), (21, 23)]
于 2012-12-28T14:10:08.473 に答える
1
>>> a=[(12, 34, 1), (123, 34, 1), (21, 23, 1)]
>>> [filter (lambda a: a != 1, x) for x in a]
[(12, 34), (123, 34), (21, 23)]

これは、インデックスに関係なく、タプルからすべて 1 を削除します

于 2012-12-28T14:30:39.840 に答える
0

タプルは (不変であるため) 変更できないため、リストのリストを使用することをお勧めします。

my_list = [[12,34,1],[123,34,1],[21,23,1]]
for i in my_list:
    i.remove(1)
return my_list

これは次を返します: [[12, 34], [123, 34], [21, 21]].

于 2012-12-28T14:21:51.680 に答える
0
     python 3.2

    1. [(i,v)for i,v,c in list1]

    2. list(map(lambda x:x[:2],list1))
于 2012-12-28T17:01:11.587 に答える