use*_*962 2 python tuples element
我有一个关于以下python结果的问题.假设我有一个元组:
a = ( (1,1), (2,2), (3,3) )
Run Code Online (Sandbox Code Playgroud)
我想删除(2,2),我正在使用以下代码执行此操作:
tuple([x for x in a if x != (2,2)])
Run Code Online (Sandbox Code Playgroud)
这很好,结果是:( (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),)
Run Code Online (Sandbox Code Playgroud)
为什么逗号和空元素在第二种情况下?我怎么摆脱它呢?
谢谢!
Python使用尾随逗号,以防元组只有一个元素:
In [21]: type((1,))
Out[21]: tuple
Run Code Online (Sandbox Code Playgroud)
来自文档:
一个特殊的问题是构造包含0或1项的元组:语法有一些额外的怪癖来适应这些.空元组由一对空括号构成; 通过使用逗号跟随值来构造具有一个项目的元组(仅在括号中包含单个值是不够的).
>>> empty = ()
>>> singleton = 'hello', # <-- note trailing comma
>>> len(empty)
0
>>> len(singleton)
1
>>> singleton
('hello',)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1263 次 |
| 最近记录: |