Python-列表字典

Python-列表字典,python,dictionary,Python,Dictionary,制作列表词典的最佳方法是什么? 例如,如果我有列表list1、list2,并希望像这样制作一本词典: my_dict = ['list1': list1, 'list2': list2] 我找到了一个例子,但最好的答案是在2009年写的。也许有一些新的更简洁的方法可以做到这一点 使用大括号语法定义字典,并为字典中的每个条目指定一个对应于每个值的键: list_a = [1,2,3,4,5] list_b = [6,7,8,9,10] my_dict = {'list1':list_a, 'l

制作列表词典的最佳方法是什么? 例如,如果我有列表list1、list2,并希望像这样制作一本词典:

my_dict = ['list1': list1, 'list2': list2]

我找到了一个例子,但最好的答案是在2009年写的。也许有一些新的更简洁的方法可以做到这一点

使用大括号语法定义字典,并为字典中的每个条目指定一个对应于每个值的键:

list_a = [1,2,3,4,5]
list_b = [6,7,8,9,10]

my_dict = {'list1':list_a, 'list2':list_b}

这应该可以:

my_dict = dict([('list1', list1), ('list2', list2)])
或者,或者:

my_dict = {'list1': list1, 'list2': list2}

结果将是相同的。

您需要使用花括号而不是方括号,但除此之外,这可能是最好的:

list1 = ['a', 'b', 'c']
list2 = [1, 2, 3, 4]
my_dict = {'list1': list1, 'list2': list2}

试试这个方法,很简洁。大括号,不是方括号

我想这是最短的路了

list1 = [5, 500, 543]
list2 = [4, 4, 4]

my_dict = {'list1':list1, 'list2': list2}

如果要将变量名转换为键,下面是一个示例

如果您只需要一个带有顺序键的列表字典

def turn_to_dict(*args):
    return {i: v for i, v in enumerate(args)}

lst1 = [1, 2, 3, 4]
lst2 = [3, 4, 6, 7]
lst3 = [5, 8, 9]

v = turn_to_dict(lst1, lst2, lst3)

>>> print(v)
{0: [1, 2, 3, 4], 1: [3, 4, 6, 7], 2: [5, 8, 9]} 

对于一个列表字典,考虑一个.< /P> 普通字典工作正常,但如果找不到键,则会引发错误

list1 = list("abcd")
list2 = [1, 2, 3, 4]


d = {"list1": list1, "list2": list2}
d["list3"]
# KeyError: 'list3'
这在某些应用程序中可能会造成中断,并且可能需要额外的异常处理

defaultdict
的行为类似于普通dict,同时添加了一些防止错误的保护

import collections as ct


dd = ct.defaultdict(list)
dd.update(d)
dd
# defaultdict(list, {'list1': ['a', 'b', 'c', 'd'], 'list2': [1, 2, 3, 4]})
添加缺少的键将调用默认出厂函数,即
list
。这里不是错误,而是一个空容器:

dd["list3"]
# []
此条目已添加为空列表

dd
# defaultdict(list,
#             {'list1': ['a', 'b', 'c', 'd'],
#              'list2': [1, 2, 3, 4],
#              'list3': []})
通过将默认工厂设置为
None

dd.default_factory = None
dd
# defaultdict(None, {'list1': ['a', 'b', 'c', 'd'], 'list2': [1, 2, 3, 4]})
或者使用
dict()
内置:

dict(dd)
# {'list1': ['a', 'b', 'c', 'd'], 'list2': [1, 2, 3, 4]}

你需要使用花括号而不是方括号,但除此之外,这可能是最好的。加上一个作为pythonic同义词的laconic:-)Matchematics可以对一个人这样做;-/把那个翻过来:-)正好相反,妈。不要读太多——表情符号不适合你。Gld to ehar it:-)“头朝下,皱着眉头笑——但是脸的其他部分现在颠倒了”