python中字典_如何在Python中遍历两个字典

您可以压缩字典:

for k, k2 in zip(price,inventory):

print(price[k]*inventory[k2])

即使您的代码有效,您也将访问键而不是值,因此您将需要使用上述每个键来访问dict值.

如果您使用的是python2,则可以使用itertools.izip:

from itertools import izip

for k, k2 in izip(price,inventory):

print(price[k],inventory[k2])

由于字典是无序的,因此您需要使用orderedDict来确保键匹配.

如果两个字典都具有相同的键,则更简单的解决方案是使用一个字典中的键从两个字典中获取值.

for k in price:

print(price[k]*inventory[k])

可以写成:

total = sum(price[k]*inventory[k]for k in price)

如果您控制如何创建字典,将两个字典合并为一个字典,则使用价格和库存作为键来存储字典,这将是更好的整体解决方案.

shop_items = {'orange': {'price': 1.5, 'inventory': 32}, 'pear': {'price': 3, 'inventory': 15}, 'banana': {'price': 4, 'inventory': 6}, 'apple': {'price': 2, 'inventory': 0}}

然后得到总数:

print(sum(d["price"] * d["inventory"] for d in shop_items.itervalues()))

或打印所有可用项目:

for k, val in shop_items.iteritems():

pri,inv = val["price"],val["inventory"]

print("We have {} {}'s available at a price of ${} per unit".format(inv,k,pri))

We have 32 orange's available at a price of $1.5 per unit

We have 15 pear's available at a price of $3 per unit

We have 6 banana's available at a price of $4 per unit

We have 0 apple's available at a price of $2 per unit

如果您要花钱,则应该使用decimal库.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值