Python 如何在将字典强制转换为列表后使用for循环?
我在列表中键入一个字典,然后使用for循环打印该列表中的所有元素。但是,这个列表似乎只包含字典的关键元素。如何使列表也包含关键元素的值 我尝试过直接对字典进行类型转换,然后使用for循环Python 如何在将字典强制转换为列表后使用for循环?,python,Python,我在列表中键入一个字典,然后使用for循环打印该列表中的所有元素。但是,这个列表似乎只包含字典的关键元素。如何使列表也包含关键元素的值 我尝试过直接对字典进行类型转换,然后使用for循环 d1 = {"a":"s", "b":"t", "c":"u", "d":"v"} d = list(d1) for i, s in d: print(i, s) 这是我得到的错误: 文件“C:/Users/Blank/PycharmProjects/proj1/Main.py”,第39行,在 对于d
d1 = {"a":"s", "b":"t", "c":"u", "d":"v"}
d = list(d1)
for i, s in d:
print(i, s)
这是我得到的错误:
文件“C:/Users/Blank/PycharmProjects/proj1/Main.py”,第39行,在
对于d中的i,s:ValueError:没有足够的值来解包(预期为2,得到1)
list()
不是类型转换。它是一个对象构造函数(用于列表),以一个iterable作为参数。它只包含dict的键,因为在Python中迭代dict就是这样做的。如果要在dict中的(键、值)对上迭代,请使用其.items()
方法。您还可以将这些内容保存到列表中,例如list(d1.items())
list()
不是类型转换。它是一个对象构造函数(用于列表),以一个iterable作为参数。它只包含dict的键,因为在Python中迭代dict就是这样做的。如果要在dict中的(键、值)对上迭代,请使用其.items()
方法。您还可以将它们保存到列表中,如list(d1.items())
错误消息是正确的,当您将字典转换为列表时,python将键保留在列表中并删除值。试着打印“d”看看我的意思
>>> d1 = {"a":"s", "b":"t", "c":"u", "d":"v"}
>>> d = list(d1)
>>> print(d)
['a', 'c', 'b', 'd']
所以当你在上面循环时,你只得到一个值,而不是两个。您必须将for循环更改为此
for i in d:
print(i)
错误消息是正确的,当您将字典转换为列表时,python将键保留在列表中,并删除了值。试着打印“d”看看我的意思
>>> d1 = {"a":"s", "b":"t", "c":"u", "d":"v"}
>>> d = list(d1)
>>> print(d)
['a', 'c', 'b', 'd']
所以当你在上面循环时,你只得到一个值,而不是两个。您必须将for循环更改为此
for i in d:
print(i)
不需要列表,您可以迭代字典 dict.items()将为您提供所需的内容 返回字典项((键、值)对的新视图。请参见视图对象的文档
不需要列表,您可以迭代字典 dict.items()将为您提供所需的内容 返回字典项((键、值)对的新视图。请参见视图对象的文档 1) 。当您将
d1
字典转换为d
列表时,则在列表d
中,您只获得字典d1
的键
d1 = {"a":"s", "b":"t", "c":"u", "d":"v"}
d = list(d1)
print(d)
输出-->['a','c','b','d']
2) 。您可以使用d1.items()
方法来获得所需的结果。我已修改了您的代码,以获取字典的键和值d1
d1 = {"a":"s", "b":"t", "c":"u", "d":"v"}
for key,value in d1.items():
print(key, value)
1) 。当您将d1
字典转换为d
列表时,则在列表d
中,您只获得字典d1
的键
d1 = {"a":"s", "b":"t", "c":"u", "d":"v"}
d = list(d1)
print(d)
输出-->['a','c','b','d']
2) 。您可以使用d1.items()
方法来获得所需的结果。我已修改了您的代码,以获取字典的键和值d1
d1 = {"a":"s", "b":"t", "c":"u", "d":"v"}
for key,value in d1.items():
print(key, value)
重写代码:-
d1 = {"a":"s", "b":"t", "c":"u", "d":"v"}
d = d1.items()
for i, s in d:
print(i, s)
输出
a s
b t
c u
d v
重写代码:-
d1 = {"a":"s", "b":"t", "c":"u", "d":"v"}
d = d1.items()
for i, s in d:
print(i, s)
输出
a s
b t
c u
d v