python - 在 Python 中使用循环创建交替字典

标签 python loops dictionary clone theano

我正在尝试创建一个带有循环的字典,其中包含交替条目,尽管条目不一定需要交替,只要它们都在字典中,我只需要最简单的解决方案就可以将它们全部放入一本词典。我正在努力实现的一个简单示例:

通常,为了创建一个带循环的字典,我会这样做:

{i:9 for i in range(3)}
output: {0: 9, 1: 9, 2: 9}

现在我正在尝试以下方法:

{i:9, i+5:8 for i in range(3)}
SyntaxError: invalid syntax

期望的输出是:

{0:9, 5:8, 1:9, 6:8, 2:9, 7:8}

或者,只要所有元素都在字典中(顺序无关紧要),这个输出也可以:

{0:9, 1:9, 2:9, 5:8, 6:8, 7:8}

上下文是我正在使用

theano.clone(cloned_item, replace = {replace1: new_item1, replace2: new_item2})

您要替换的所有项目都必须在一本字典中给出。

提前致谢!

最佳答案

您可以使用 itertools 在一行中完成此操作

dict(itertools.chain.from_iterable(((i, 9), (i+5, 8)) for i in range(3)))

解释:

内部创建了一堆元组

((i, 9), (i+5, 8)) for i in range(3)

以列表形式展开为

[((0, 9), (5, 8)), ((1, 9), (6, 8)), ((2, 9), (7, 8))]

然后 chain.from_iterable 将它压平一个级别以产生

[(0, 9), (5, 8), (1, 9), (6, 8), (2, 9), (7, 8)]

这当然适用于采用元组序列的 dict init

关于python - 在 Python 中使用循环创建交替字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31352311/

相关文章:

python - 在Python中设置嵌套字典项时访问完整字典

python - 使用带有 Python urllib2 的个人访问 token 访问 Github API

python - AppEngine Transaction 是否需要执行 get 和 put 操作才能发挥作用?

python - Matplotlib 演示代码不起作用

python - 使用 Pandas ,我如何比较两个数据帧的两列之间的值并将它们推送到新的数据帧?

java - 我怎样才能 "delimit"来自给定字符串的整数?

PHP PDO while 循环没有返回任何东西

java - 遍历 ResultSet 并将其值添加到 ArrayList

iPhone map 图钉圆圈

c# - 如何序列化从字典派生的类