Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从元组中删除元素时额外的空元素_Python_Element_Tuples - Fatal编程技术网

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

我有一个关于以下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,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',)