我正在寻找一种更为python的方法来获取字典列表中每个键的值的最大长度。你知道吗
我的方法是这样的
lst =[{'a':'asdasd', 'b': 123},{'a': 'asdasdasdas'}, {'a':123,'b':'asdasd'}]
dct = {}
for l in lst:
for key in l:
dct.update({key: max(dct.get(key,0), len(str(l.get(key,0))))})
print(dct)
输出为
{'b': 6, 'a': 11}
需要str函数来获取整数的长度(也可以是Nones)
这种方法是“pythonic”还是有一种更流畅、更易读的方法使用列表理解或类似的方法。你知道吗
其他的答案侧重于使用python特性,而不是可读性。我个人认为可读性和简单性是所有“pythonic”特性中最重要的。你知道吗
(我简化了使用字符串来处理所有事情,但是如果您插入
str()
,它也可以处理整数)这里有另一种方法不依赖于排序/压缩,但我不会说一种比另一种更像Python。你知道吗
或者,您可以使用groupby:
我认为你的方法是相当python的,只是我要把
update
行改得更清楚一点:下面是一个同时修改变量名的解决方案:
相关问题 更多 >
编程相关推荐