相关疑难解决方法(0)

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

众所周知,有列表理解,比如

[i for i in [1, 2, 3, 4]]
Run Code Online (Sandbox Code Playgroud)

并且有字典理解,比如

{i:j for i, j in {1: 'a', 2: 'b'}.items()}
Run Code Online (Sandbox Code Playgroud)

(i for i in (1, 2, 3))
Run Code Online (Sandbox Code Playgroud)

将最终成为一个发电机,而不是tuple理解.这是为什么?

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

python tuples list-comprehension dictionary-comprehension set-comprehension

289
推荐指数
7
解决办法
9万
查看次数

了解Python中的生成器

我正在阅读Python食谱,目前我正在研究发电机.我发现很难理解我的头脑.

因为我来自Java背景,是否有Java等价物?这本书讲的是"制片人/消费者",但是当我听到我想到线程时.

什么是发电机,为什么要使用它?显然没有引用任何书籍(除非你能直接从书中找到一个体面的,简单的答案).也许有例子,如果你感觉很慷慨!

python generator

194
推荐指数
12
解决办法
12万
查看次数

内部"yield"的列表理解与生成器理解的区别

列表理解与yield内部生成器理解有什么区别?两者都返回一个生成器对象(listcompgenexpr分别),但在完全评估后,后者添加了似乎相当多余None的东西.

>>> list([(yield from a) for a in zip("abcde", itertools.cycle("12"))])
['a', '1', 'b', '2', 'c', '1', 'd', '2', 'e', '1']

>>> list(((yield from a) for a in zip("abcde", itertools.cycle("12"))))
['a', '1', None, 'b', '2', None, 'c', '1', None, 'd', '2', None, 'e', '1', None]
Run Code Online (Sandbox Code Playgroud)

怎么会?什么是科学解释?

python list-comprehension python-3.x

11
推荐指数
1
解决办法
617
查看次数