Python字典理解
是否可以在Python中(对于键)创建字典理解?
如果没有列表理解,则可以使用以下内容:
l = []for n in range(1, 11):
l.append(n)
我们可以将其简化为列表理解:l = [n for n in range(1, 11)]
。
但是,说我想将字典的键设置为相同的值。我可以:
d = {}for n in range(1, 11):
d[n] = True # same value for each
我已经试过了:
d = {}d[i for i in range(1, 11)] = True
不过,我得到一个SyntaxError上for
。
另外(我不需要这部分,只是想知道),你能否将字典的键设置为一堆不同的值,例如:
d = {}for n in range(1, 11):
d[n] = n
字典理解有可能吗?
d = {}d[i for i in range(1, 11)] = [x for x in range(1, 11)]
这也引发了SyntaxError
对for
。
回答:
Python 2.7+中有字典理解功能,但是它们不能完全按照你尝试的方式工作。就像列表理解一样,他们创建了一个新字典。你不能使用它们将键添加到现有字典中。另外,你必须指定键和值,但是当然可以根据需要指定虚拟值。
>>> d = {n: n**2 for n in range(5)}>>> print d
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
如果要将它们全部设置为True:
>>> d = {n: True for n in range(5)}>>> print d
{0: True, 1: True, 2: True, 3: True, 4: True}
你似乎想要的是一种在现有字典上一次设置多个键的方法。没有直接的捷径。你可以像已经显示的那样循环,也可以使用字典理解来创建具有新值的新字典,然后oldDict.update(newDict)将新值合并到旧字典中。
以上是 Python字典理解 的全部内容, 来源链接: utcz.com/qa/423539.html