我有代码:
coin = {'Bug Out Bag': ['quarter', 0.25, 10000], 'small': ['quarters', 0.25, 10]}
for coin in sorted(coins_in_the_bag, key=coins_in_the_bag.get):
print(str('bag:' + coin + 'coin: ' + coin[0] + 'value: ' + (coin[1] * coin[2]) ))
当我运行它时,我得到:
print(str('bag:' + coin + 'coin: ' + coin[0] + 'value: ' + (coin[1] * coin[2
]) ))
TypeError: can't multiply sequence by non-int of type 'str'
我该怎么做,以便得到输出(因为我正在尝试用我的代码实现):
bag: small coin: quarter 2.50
bag: Bug Out Bag coin: quarter 2500.0
排序我想根据每个硬币的coin [1] * coin [2]的总值对它进行排序。
谢谢你。
>>> coins_in_the_bag = {'Bug Out Bag': ['quarter', 0.25, 10000], 'small': ['quarters', 0.25, 10]}
>>> for k,v in sorted(coins_in_the_bag.items(), reverse=True):
print ('bag: {0} coin {1} value {2}'.format(k, v[0], v[1]*v[2]))
bag: small coin quarters value 2.5
bag: Bug Out Bag coin quarter value 2500.0
编辑:
如果要针对每个列表的第二和第三元素的乘法对字典项进行排序,则可以采用以下一种方法:
>>> sorted(coins_in_the_bag.items(), key=lambda s: s[1][1]*s[1][2])
[('small', ['quarters', 0.25, 10]), ('Bug Out Bag', ['quarter', 0.25, 10000])]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句