我正试图从存储的列表中创建一个Python字典。第一种方法有效
>>> myList = []
>>> myList.append('Prop1')
>>> myList.append('Prop2')
>>> myDict = dict([myList])
但是,以下方法不起作用
>>> myList2 = ['Prop1','Prop2','Prop3','Prop4']
>>> myDict2 = dict([myList2])
ValueError: dictionary update sequence element #0 has length 3; 2 is required
所以我想知道为什么第一个使用append的方法有效,而第二个方法无效?myList
和myList2
之间有区别吗?
再次检查myList2
实际上有两个以上的元素。更新了第二个示例以反映这一点。
你做错了。
dict()
构造函数不接受项列表(更不用说包含单个项列表的列表),它接受2元素的iterable。所以如果你把代码改成:然后你会得到你想要的:
这样做的原因是:
是因为它将它解释为一个包含一个元素的列表,而这个列表包含两个元素。
从本质上讲,
dict
构造函数接受其第一个参数并执行类似于以下内容的代码:相关问题 更多 >
编程相关推荐