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

时间:2015-12-08 14:53:29

标签: python python-3.x printing sequence

我有代码:

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

分拣 我希望根据每枚硬币的硬币[1] *硬币[2]的总价值对此进行排序。

谢谢。

2 个答案:

答案 0 :(得分: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])]

答案 1 :(得分:0)

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

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])))