我不确定实现这一目标的最佳方式。
for line in lines:
value1 = a
value2 = b
value3 = c
有多个字符串等于value2和value3。所以我最初的想法是创建一个字典,但键的初始值是用每个新值写的。
如何获得如下所示的数据结构:
{value1, value2 = [a,b,c], value3 = [d,e,f]}
我可以在集合中创建一个列表吗?
答案 0 :(得分:0)
您可以使用defaultdict
来实现此目的。然后,您可以轻松地根据键创建列表,并将与该键关联的多个值存储在列表中(以避免出现覆盖问题)。
在基础级别,当您定义my_dict = defaultdict(list)
时,您所说的是"当我为此词典创建新密钥时,会自动为该密钥分配一个空列表作为默认值。"然后,您可以立即将值附加到针对该键存储的空列表中。如果密钥已存在,则其行为与常规字典的行为相同。
import random
from collections import defaultdict
choice_of_numbers = range(20) # We will pick randomly from the list and assign to dict keys
my_dict = defaultdict(list) # Create a defaultdict
for x in range(5): # To emulate your for line in lines loop
my_dict['value1'].append(random.choice(choice_of_numbers))
my_dict['value2'].append(random.choice(choice_of_numbers))
my_dict['value3'].append(random.choice(choice_of_numbers))
print(dict(my_dict)) # We call dict here just to make the appearance more familiar