python字典统计值个数_计算字典中键值对的数目

我将使用以下语句计算每个嵌套字典的值:{k: sum(1 for val in v.itervalues() if val == 'available') for k, v in seats.iteritems()}

这将从与seats相同的键构建一个新字典,每个值都是可用的座位数。使用生成器技巧的sum(..)可以有效地计算每行字典中包含的值等于'available'的所有值。在

结果:

^{pr2}$

要显示特定行的可用座位,请过滤并使用len():row_available = [k for k, v in seats[rowChoice].iteritems() if v == 'available']

avail_count = len(row_available)

if avail_count:

print 'there {is_are} {count} seat{plural} available in row {rowChoice}, seat{plural} {seats}'.format(

is_are='are' if avail_count > 1 else 'is', count=avail_count,

plural='s' if avail_count > 1 else '', rowChoice=rowChoice,

seats=row_available[0] if avail_count == 1 else ' and '.join([', '.join(row_available[:-1]), row_available[-1]]))

对于rowChoice = 'A'此打印:there are 2 seats available in row A, seats A1 and A3

但它也会调整以形成连贯的句子,以适应更多或更少的座位。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值