在同一语句中打印字典和字符串对象 python

print dictionary and string objects in same statement python

我有代码:

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] 的总价值对其进行排序。

谢谢。

我认为这就是您所需要的。

coin = {'Bug Out Bag': ['quarter', 0.25, 10000], 'small': ['quarters', 0.25, 10]}

for c in sorted(coin,key=coin.get):
    print('bag: {0} coin {1} value {2}'.format(c, coin[c][0], float(coin[c][1])*float(coin[c][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])]