dict.values()不';t提供python中的所有值
dict.values()不提供在for循环中检索到的所有值。我使用for循环从文本文件中检索值dict.values()不';t提供python中的所有值,python,python-2.7,dictionary,Python,Python 2.7,Dictionary,dict.values()不提供在for循环中检索到的所有值。我使用for循环从文本文件中检索值 test = {} with open(input_file, "r") as test: for line in test: value = line.split()[5] value = int(value) test[value] = value print (value)
test = {}
with open(input_file, "r") as test:
for line in test:
value = line.split()[5]
value = int(value)
test[value] = value
print (value)
test_list = test.values()
print (str(test_list))
值和测试值包含的数据数不相等
输出如下:
从打印“值”开始:
从打印测试列表:
有没有办法将重复值也包括在列表中?这一行:
test[value] = value
不将新值添加到test
如果它是重复的,它只会覆盖旧值。因此,任何重复项都会被删除。values()
调用将真正返回保留在dict中的所有内容。此行:
test[value] = value
不将新值添加到test
如果它是重复的,它只会覆盖旧值。因此,任何重复项都会被删除。values()
调用将真正返回保留在dict中的所有内容。键不能包含重复项。当您执行test[value]=value
时,键value
处的旧值将被覆盖。因此,只能得到有限的一组值
可以进行样本测试
>>> {1:10}
{1: 10}
>>> {1:10,1:20}
{1: 20}
在这里您可以看到,复制键被新值覆盖
评论后编辑
正如您所说,您需要一个值列表,您可以在开始处有一个语句l=[]
,在test[value]=value
键不能包含重复项的地方有l.append(value)
。当您执行test[value]=value
时,键value
处的旧值将被覆盖。因此,只能得到有限的一组值
可以进行样本测试
>>> {1:10}
{1: 10}
>>> {1:10,1:20}
{1: 20}
在这里您可以看到,复制键被新值覆盖
评论后编辑
正如您所说的,您需要一个值列表,您可以在开始处有一个语句
l=[]
,在您有test[value]=value
的地方有l.append(value)
,这是因为python字典不能有重复的值。每次运行test[value]=value
,它都会替换现有的值,或者在字典中还没有的情况下添加该值
例如:
>>> d = {}
>>> d['a'] = 'b'
>>> d
{'a': 'b'}
>>> d['a'] = 'c'
>>> d
{'a': 'c'}
我建议将此列为一个列表,如:
output = []
with open(input_file, "r") as test:
for line in test:
value = line.split()[5]
value = int(value)
output.append(value)
print (value)
print (str(output))
这是因为python字典不能有重复的值。每次运行
test[value]=value
,它都会替换现有的值,或者在字典中还没有的情况下添加该值
例如:
>>> d = {}
>>> d['a'] = 'b'
>>> d
{'a': 'b'}
>>> d['a'] = 'c'
>>> d
{'a': 'c'}
我建议将此列为一个列表,如:
output = []
with open(input_file, "r") as test:
for line in test:
value = line.split()[5]
value = int(value)
output.append(value)
print (value)
print (str(output))
如何获取包括重复项在内的值。因为我需要把所有的值都输入到dictionary@user3703782似乎您需要一个
列表
,而不是目录
。也许你可以编辑这个问题,告诉我们更多你想要完成的总体目标?我如何获得包括重复项在内的值。因为我需要把所有的值都输入到dictionary@user3703782似乎您需要一个列表
,而不是目录
。也许你可以编辑这个问题来告诉我们更多你想要完成的事情?有没有办法将包含重复项的值放入一个列表?但是当我这样做时,我得到一个错误AttributeError:'dict'对象没有属性'append'是的,我做了output=[]输出。append(int(value))print(“列表值:“+str(output))
我是这样做的,但是我遇到了我提到的错误。我试着按照你说的删除错误。很好!非常感谢:)有没有办法将包含重复项的值放入列表中?但当我这样做时,会得到一个错误AttributeError:“dict”对象没有属性“append”是的,我做了output=[]输出。append(int(value))print(“列表值:+str(output))
我是这样做的,但是我遇到了我提到的错误。我试着按照你说的删除错误。很好!非常感谢:)您是否意识到您正在使用名称test
来处理两种不同的事情?我希望这是您的真实代码中的一个转录错误。您是否意识到您使用的名称是test
,用于两种不同的事情?我希望这是您真实代码中的转录错误。但是我得到了一个错误AttributeError:“dict”对象没有属性“append”您是否将第一行设置为output=[]
?是的,我设置了output=[]output.append(int(value))print(“列表值:“+str(output))
AttributeError:“dict”对象没有属性“append”
意味着output
仍然是一个dict。您正在将它设置为字典。您没有将open(input_file,“r”)作为输出执行,对吗?这应该仍然是test
。没错,还有另一个参数是page\u name={}
,我把它改为page\u name=[]
现在一切都好了。谢谢,但我得到一个错误AttributeError:“dict”对象没有属性“append”您是否将第一行设置为output=[]
?是的,我设置了output=[]output.append(int(value))print(“列表值:”+str(output))
AttributeError:“dict”对象没有属性“append”
意味着output
仍然是一个dict。您正在将它设置为字典。您没有将open(input_file,“r”)作为输出执行,对吗?这应该仍然是test
。没错,还有另一个参数是page\u name={}
,我把它改为page\u name=[]
现在一切都好了。谢谢