设置字典:
rr = range(1,11)
ft =[('sd:jan:'+ str(x), 'News') for x in rr]
fd = dict(ft)
fd
{'sd:jan:1': 'News',
'sd:jan:10': 'News',
'sd:jan:2': 'News',
'sd:jan:3': 'News',
'sd:jan:4': 'News',
'sd:jan:5': 'News',
'sd:jan:6': 'News',
'sd:jan:7': 'News',
'sd:jan:8': 'News',
'sd:jan:9': 'News'}
fd.keys()
['sd:jan:10',
'sd:jan:2',
'sd:jan:3',
'sd:jan:1',
'sd:jan:6',
'sd:jan:7',
'sd:jan:4',
'sd:jan:5',
'sd:jan:8',
'sd:jan:9']
如何在密钥中添加'jan'的所有值?
编辑:我在为“jan”的部分键添加值(1 + 2 + 3 + 4 + 5 + 6 + ... + 10)。
答案 0 :(得分:2)
如果你可以避免它,你不应该将数字转换为字符串,如果你想稍后用数字做一些事情。怎么样:
rr = range(1,11)
ft =[(('sd','jan',x), 'News') for x in rr]
fd = dict(ft)
tot = sum(val
for (key, subkey, val) in fd
if subkey == 'jan')
>>>tot
55
答案 1 :(得分:1)
如何使用generator expression:
sum(int(i.split(':')[-1]) for i in fd.keys())
给出:
55
按:
拆分每个条目,抓取最后一个字段,转换为int并汇总它们。
如果您需要检查这些数字,或者之后由于某种原因想要它们,您可以使用list comprehension轻松地将它们收集到列表中:
[int(i.split(':')[-1]) for i in fd.keys()]
答案 2 :(得分:0)
len([i for i in fd if i[3:6] == 'jan'])
创建列表理解,通过'jan'子串([3:6]
)对其进行过滤。使用len
计算结果列表。
答案 3 :(得分:0)
for key in fd:
if 'jan' in key:
total=total+int(key.split(':')[-1])