我正在尝试从嵌套列表创建词典。但是,我遇到了一个问题,在字典中添加值是因为它们是字符串。有没有创造性的解决办法?或许可以把我的字符串分成另一个列表?你知道吗
my_list = [('key1', 'topic1', 'content1'), ('key2', 'topic1', 'content2'), ('key3', 'topic2', 'content3')]
my_dict = {}
for list in my_list:
for val in list:
if list[1] in my_dict:
my_dict[list[1]].append(list[2])
else:
my_dict[i[1]] = i[2]
我试着回来:
[{'topic1': 'content1', 'content2'}, {'topic2': 'content3'}]
每个字典条目的值必须是另一个集合。一个列表或集合,取决于重复项的预期行为。你知道吗
这是最接近您的当前代码。稍微改进的版本是:
假设
list
已经被语言使用,并且my_list
元素不是列表而是元组(在特定情况下是三元组)。出于同样的原因,你也可以写:最后,您可以使用
defaultdict
(一个字典,它在第一次引用键时自动初始化对应的值)。你知道吗如果以后要使用字典检查是否有键,则必须记住,对于
defaultdict
,所有键都始终存在(在查询时创建)。在这种情况下,最好的解决方案是将defaultdict
复制到一个常规的defaultdict
中:相关问题 更多 >
编程相关推荐