[英]How can I delete second element of list
我得到一个像这样的列表[[3,5],[5,3],[5,4],[0,2],[1,4],[1,2]]
所以我想删除[5,4]
和[1,2]
因为列表的第一个数字为[5,3]
和[1,4]
所以我尝试了
但我不知道如何访问[5,4]和[1,2]
>>> a=[[3,5],[5,3],[5,4],[0,2],[1,4],[1,2]]
>>> a.reverse()
>>> a.remove()
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: remove() takes exactly one argument (0 given)
>>> a.remove(5)
Traceback (most recent call last):
File "<input>", line 1, in <module>
ValueError: list.remove(x): x not in list
使用set
跟踪访问的内容,仅在尚未访问的情况下添加条目:
lst = [[3,5],[5,3],[5,4],[0,2],[1,4],[1,2]]
seen = set()
print([x for x in lst if not (x[0] in seen or seen.add(x[0]))])
# [[3, 5], [5, 3], [0, 2], [1, 4]]
我的答案与奥斯丁的答案几乎相同。
a=[[3,5],[5,3],[5,4],[0,2],[1,4],[1,2]]
dct={}
for x,y in a:
if x not in dct:
dct[x]=y
print(list(dct.items()))
[list(v)[0] for _,v in itertools.groupby(l,key=lambda x: x[0]) ]
[[3, 5], [5, 3], [0, 2], [1, 4]]
如果可以使用pandas groupby
l=[[3, 5], [5, 3], [5, 4], [0, 2], [1, 4], [1, 2]]
df=pd.DataFrame(l).groupby(0).first().reset_index().values.tolist()
[[0, 2], [1, 4], [3, 5], [5, 3]]
要顺序
sorted( df, key=lambda x : l.index(x))
[[3, 5], [5, 3], [0, 2], [1, 4]]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.