【发布时间】:2018-05-28 10:29:44
【问题描述】:
我正在寻找一种有效的方法来将(20,24) 之类的数字范围与{'a': 'b'} 之类的另一个对象组合起来,
[(20, {'a': 'b'}), (21, {'a': 'b'}), (22, {'a': 'b'}), (23, {'a': 'b'})]
如果我有一个像[20, 21, 22, 23] 这样的数字列表,我知道遍历列表是可行的方法。但在这里我有一系列数字。所以可能有一种方法可以更优雅地将范围元素包装在元组中。
这是我实现这一目标的尝试:
min = 20
max = 23
data = {"a": "b"}
result = []
for i in range(min, max + 1):
result.append((i, data))
print(result)
我只是想知道是否有更好的方法来做到这一点。
【问题讨论】:
-
[(x, data) for x in range(20, 24)]?请记住,您只是在复制参考。改变一个字典,它们都会改变。 -
这很好,但“更好”是值得怀疑的 ;)
-
请记住,在所有这些情况下,更改
data["a"] = "z"将影响result的每个元素。
标签: python python-3.x list tuples