Python函数,用于组织lis,字典中的值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python函数,用于组织lis,字典中的值相关的知识,希望对你有一定的参考价值。
缩放比率对象的硬度一个函数应该返回一个字典,将这些列表中的对象组织成四个类别。
答案
- 使用键和空列表创建
dict
。 - 每次迭代都会将值附加到相应的键。
/
def func(ls):
dict_ = {'soft':[], 'medium':[],'hard':[], 'very hard':[]}
for i in ls:
# print(i)
if i[1] >= 1 and i[1] <=3:
dict_['soft'].append(i[0])
elif i[1] >= 3.1 and i[1] <= 5:
dict_['medium'].append(i[0])
elif i[1] >= 5.1 and i[1] <=8:
dict_['hard'].append(i[0])
elif i[1] >= 8.1 and i[1] <=10:
dict_['very hard'].append(i[0])
return dict_
print(func(rocks))
产量
{'hard': ['silicon', 'emerald'],
'medium': ['nickel'],
'soft': ['talc', 'lead', 'copper'],
'very hard': ['boron', 'diamond']}
另一答案
另一种解决方法是使用dict comprehension
和setdefault
方法:
rocks = [('talc', 1), ('lead', 1.5), ('copper', 3),
('nickel', 4), ('silicon', 6.5), ('emerald', 7.5),
('boron', 9.5), ('diamond', 10)]
aa = {}
bb = {aa.setdefault("soft",[]).append(k) if 1 <= v <= 3
else aa.setdefault("medium",[]).append(k) if 3.1 <= v <= 5
else aa.setdefault("hard",[]).append(k) if 5.1 <= v <= 8
else aa.setdefault("very hard",[]).append(k)
for k, v in rocks}
print (aa)
# Result--> {'soft': ['talc', 'lead', 'copper'], 'medium': ['nickel'], 'hard': ['silicon', 'emerald'], 'very hard': ['boron', 'diamond']}
我希望这甚至可以帮助您理解setdefault的用法。 :)
以上是关于Python函数,用于组织lis,字典中的值的主要内容,如果未能解决你的问题,请参考以下文章