在一个lin中声明和附加字典中的列表

2024-06-06 07:21:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道是否有一个字典命令,允许我声明一个键和列表,如果它不在字典中,或者更新它,如果它是

i = 0
newlines["numbersbytwo"] = []
newlines["numbersbyfive"] = []
while i<n:
    newlines["numbersbytwo"].append(i*2)
    newlines["numbersbyfive"].append(i*5)
    i+=1

这是我目前的代码,但我想知道是否有任何方法不必先声明它


Tags: 方法代码命令声明列表字典appendwhile
2条回答

可以使用带有空列表的defaultdict作为默认值。例如:

In [1]: from collections import defaultdict

In [2]: newlines = defaultdict(list)

In [3]: newlines["numbersbytwo"].append(1)

In [4]: newlines["numbersbyfive"].append(11)

In [5]: newlines
Out[5]: defaultdict(<function <lambda> at 0x00000000031D5048>, {'numbersbyfive': [11], 'numbersbytwo': [1]})

In [6]: newlines["numbersbytwo"]
Out[6]: [1]

In [7]: newlines["numbersbyfive"]
Out[7]: [11]

In [8]:

您可以使用setdefault方法

>>> newlines = {}
>>> i = 0
>>> while i < n:
>>>    newlines.setdefault(numbersbytwo, [])
>>>    newlines.setdefault(numbersbyfive, [])
>>>    newlines['numbersbytwo'].append(i*2)
>>>    newlines['numbersbyfive'].append(i*5)
>>>    i += 1

相关问题 更多 >