Python 从元组中删除元素时额外的空元素
我有一个关于以下python结果的问题。 假设我有一个元组:Python 从元组中删除元素时额外的空元素,python,element,tuples,Python,Element,Tuples,我有一个关于以下python结果的问题。 假设我有一个元组: a = ( (1,1), (2,2), (3,3) ) 我想删除(2,2),我正在使用以下代码执行此操作: tuple([x for x in a if x != (2,2)]) 这很好,结果是:((1,1)、(3,3)),正如我所期望的那样 但是假设我从a=((1,1),(2,2)) 使用相同的tuple()命令,结果是((1,1),),而我希望它是((1,1)) 总之 >>> a = ( (1,1), (2
a = ( (1,1), (2,2), (3,3) )
我想删除(2,2)
,我正在使用以下代码执行此操作:
tuple([x for x in a if x != (2,2)])
这很好,结果是:((1,1)、(3,3))
,正如我所期望的那样
但是假设我从a=((1,1),(2,2))
使用相同的tuple()命令,结果是((1,1),)
,而我希望它是((1,1))
总之
>>> a = ( (1,1), (2,2), (3,3) )
>>> tuple([x for x in a if x != (2,2)])
((1, 1), (3, 3))
>>> a = ( (1,1), (2,2) )
>>> tuple([x for x in a if x != (2,2)])
((1, 1),)
为什么在第二种情况下使用逗号和空元素?我怎样才能摆脱它呢
谢谢 Python在元组只有一个元素的情况下使用尾随逗号:
In [21]: type((1,))
Out[21]: tuple
从:
一个特殊的问题是构造包含0或1的元组
items:语法有一些额外的怪癖来适应这些。空的
元组由一对空括号构成;具有
一项是通过在值后面加逗号(不是逗号)来构造的
足够将单个值括在括号中)
>>空=()
>>>singleton='hello',#>>len(空)
0
>>>莱恩(单身)
1.
>>>独生子女
(‘你好’,)
它表示一个单元素元组,只是为了防止混淆
(1,)
是一个元组,而(1)
只是带有不必要括号的数字1
>>> empty = ()
>>> singleton = 'hello', # <-- note trailing comma
>>> len(empty)
0
>>> len(singleton)
1
>>> singleton
('hello',)