我有一个元组列表,一些元组中只有一个元素。如何从列表中仅删除一个项目的元组?我想保留其中有两个元素的元组。删除只有一个项目的元组 - python
元组我都包含一个字符串,然后一个整数后
list = ((['text'],1),(['text'],2),((3,))
我有一个元组列表,一些元组中只有一个元素。如何从列表中仅删除一个项目的元组?我想保留其中有两个元素的元组。删除只有一个项目的元组 - python
元组我都包含一个字符串,然后一个整数后
list = ((['text'],1),(['text'],2),((3,))
我建议:
filtered_list = [tup for tup in list if len(tup) == 2]
您还可以检查元组的长度大于1或任何其他更高...
你想创建一个带方括号而不是圆括号的列表,否则你会创建一个元组。
另外请不要像EdChum建议的那样调用像内置名称这样的变量。
这里的解决方案是过滤列表:
l=[(1,2),(3,),(4,5)]
filter(lambda x: len(x)!=1, l)
不要忘记分配你的结果,否则会丢失。 – glglgl
如果您需要使用'lambda'来使用它,请不要使用'filter'。 Py2和Py3之间的行为不一致,当你需要使用'lambda'时,它通常比较慢并且更加冗长。如果len(x)!= 1]或者生成器表达式(aka genexpr),'(x for x in l if len(x)!= 1),则使用list comprehension(又名listcomp) '而是在Py2和Py3上保持一致,更快(并且根据Guido,更多Pythonic)行为。 – ShadowRanger
什么:
new_list = [x for x in old_list if len(x) > 1]
你可以使用类似的东西来重建与元组新的元组的长度大于1 。
new_list = tuple(item for item in your_list if len(item) > 1)
我没有在这里看到一个'list',同时命名你的变量'list'会影响内建类型'list'也是你说明你想要的输出是删除最后一个条目? – EdChum