我有这个:
{'Sleep': ['Bed', 'Sheets', 'Warm', 'TV', 'Computer', 'Phone']}
但我想要这个:
{'Sleep': [['Bed', 'Sheets', 'Warm'], ['TV', 'Computer', 'Phone']]}
我尝试过使用:
def func():
for element in data:
if element[1] in b:
b[element[1]].append([element[0], element[2], element[3], element[4], element[5]])
else:
b[element[1]] = [element[0], element[2], element[3], element[4], element[5]]
我还尝试了 .extend()
和 b[element[1] +=
,代替 .append()
但它正在返回以进行追加:
{'Sleep': ['Bed', 'Sheets', 'Warm', ['TV', 'Computer', 'Phone']]}
并返回+=:
{'Sleep': ['Bed', 'Sheets', 'Warm', 'TV', 'Computer', 'Phone']}
我明白为什么他们会以这种方式返回,但我不知道如何将列表分开。所以,我的问题是如何将列表分开?
最佳答案
每个键不能有多个值,不行。
您可以创建一个包含现有列表的新列表,并将其设为以下值:
def func():
for element in data:
if element[1] in b:
b[element[1]].append([element[0], element[2], element[3], element[4], element[5]])
else:
b[element[1]] = [[element[0], element[2], element[3], element[4], element[5]]]
请注意,当键不存在时,我们添加一个嵌套列表。
现在产生:
{'Sleep': [['Bed', 'Sheets', 'Warm'], ['TV', 'Computer', 'Phone']]}
您可以使用dict.setdefault()
method而不是在这里测试遏制,也许进行一些切片来构建新列表:
def func():
for element in data:
b.setdefault(element[1], []).append([element[:1] + element[2:])
dict.setdefault()
返回给定键的值,或者如果该键丢失,则添加第二个参数作为该键的值,然后返回该值。
关于python - 如何向一个键添加多个列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31788730/