首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么Python中没有元组理解?

为什么Python中没有元组理解?
EN

Stack Overflow用户
提问于 2013-06-05 20:44:24
回答 9查看 155.9K关注 0票数 419

我们都知道,有列表理解,比如

代码语言:javascript
复制
[i for i in [1, 2, 3, 4]]

还有字典的理解,比如

代码语言:javascript
复制
{i:j for i, j in {1: 'a', 2: 'b'}.items()}

代码语言:javascript
复制
(i for i in (1, 2, 3))

将在生成器中结束,而不是tuple理解。为什么会这样呢?

我的猜测是tuple是不可变的,但这似乎不是答案。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2013-06-05 20:46:37

您可以使用生成器表达式:

代码语言:javascript
复制
tuple(i for i in (1, 2, 3))

但是…的括号已经用过了。生成器表达式。

票数 610
EN

Stack Overflow用户

发布于 2017-11-24 23:34:22

Since Python 3.5,您还可以使用splat *解包语法来解包生成器表达式:

代码语言:javascript
复制
*(x for x in range(10)),
票数 79
EN

Stack Overflow用户

发布于 2013-06-05 20:47:34

理解是通过循环或迭代项目并将其分配到容器中来工作的,元组无法接收分配。

一旦创建了元组,就不能对其进行追加、扩展或赋值。修改元组的唯一方法是如果它的一个对象本身可以被分配给(是一个非元组容器)。因为Tuple只持有对这类对象的引用。

另外-一个元组有它自己的构造器tuple(),你可以给它任何迭代器。这意味着要创建一个元组,您可以这样做:

代码语言:javascript
复制
tuple(i for i in (1,2,3))
票数 33
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16940293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档