我正在尝试将Python字典转换为Python列表,以便执行一些计算。
#My dictionary
dict = {}
dict['Capital']="London"
dict['Food']="Fish&Chips"
dict['2012']="Olympics"
#lists
temp = []
dictList = []
#My attempt:
for key, value in dict.iteritems():
aKey = key
aValue = value
temp.append(aKey)
temp.append(aValue)
dictList.append(temp)
aKey = ""
aValue = ""
这就是我的尝试。但是我不知道出了什么问题?
发布于 2009-11-05 17:38:44
您的问题是将key
和value
放在引号中,使其成为字符串,即将aKey
设置为包含字符串"key"
,而不是变量key
的值。此外,您不会清空temp
列表,所以每次都要向其中添加内容,而不是只在其中添加两项。
要修复您的代码,请尝试如下所示:
for key, value in dict.iteritems():
temp = [key,value]
dictlist.append(temp)
在使用循环变量key
和value
之前,不需要将它们复制到另一个变量中,所以我把它们去掉了。类似地,您不需要使用append来构建列表,您只需在方括号中指定它,如上图所示。如果我们想要尽可能简短,我们可以做dictlist.append([key,value])
。
或者按照建议的那样使用dict.items()
。
发布于 2009-11-05 17:36:58
dict.items()
真的很管用。
发布于 2012-03-12 21:46:29
在Python语言中,可以轻松地将dict转换为list。三个例子:
>> d = {'a': 'Arthur', 'b': 'Belling'}
>> d.items()
[('a', 'Arthur'), ('b', 'Belling')]
>> d.keys()
['a', 'b']
>> d.values()
['Arthur', 'Belling']
https://stackoverflow.com/questions/1679384
复制相似问题