我的列表如下:
['river: 0.3']
['spread: 0.04']
['idaho: 0.5']
我想先将它们合并在一起,然后按值降序排列,并将其作为标准输出。最后打印一个句子,例如最高值为0.711,它将打印:
"the largest value is idaho"
这是我的尝试,但我失败了,当我想排名:
u = ['river: 0.3']
v = ['spread: 0.04']
s = ['idaho: 0.5']
mergelist = u + v + s
ranklist = sorted(mergelist, key=lambda x: x[1], reverse=True)
for i in ranklist:
print(' '.join(list(map(str, i))))
print("the largest value is" + ' ' + ranklist[0])
所需的标准输出为:
idaho 0.5
river 0.3
spread 0.04
the largest value is idaho
第一个问题是数值仍然在字符串中(出于某种原因,字符串在一个元素列表中)。我建议您按
':'
分割字符串,并使用字典作为合并数据结构,而不是列表注意
item,
解压长度为1的列表当然,如果您硬编码了
u
、v
和s
,您也可以直接输入d = {'river': 0.3, 'spread': 0.04, 'idaho': 0.5}
现在您有了一个很好的、干净的字典,便于查找操作
现在可以按值降序对dict的
items
排序。。。如果您只需要具有最大值的(key,value)对,也可以使用
max
内置项这是一种方法
输出:
:
拆分字符串根据评论中的要求
输出:
你的代码中有几个错误
首先
没有对(即不是(x,y)的形式)
你需要的是这样的东西:
现在我们不能把它们和加号(+)运算合并,而是
然后呢
注意,我使用ranklist[0][0]而不是ranklist[0],因为现在它是一个列表列表
相关问题 更多 >
编程相关推荐