gpt4 book ai didi

python - 从字典列表中以 pythonic 方式获取每个键值的最大长度

转载 作者:太空宇宙 更新时间:2023-11-03 13:39:46 25 4
gpt4 key购买 nike

我正在寻找一种更符合 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 函数来获取整数(以及非整数)的长度

这种方法是“pythonic”还是有使用列表理解或类似方法的更流畅、更易读的方法。

最佳答案

我认为您的方法相当 Pythonic,除了我会更改 update 行使其更清晰一些:

# A little terse
dct.update({key: max(dct.get(key,0), len(str(l.get(key,0))))})
# A little simpler
dct[key] = max(dct.get(key, 0), len(str(l[key])))

这里有一个修改了变量名的解决方案:

dict_list =[{'a':'asdasd', 'b': 123},{'a': 'asdasdasdas'}, {'a':123,'b':'asdasd'}]
max_lengths = {}
for dictionary in dict_list:
for k, v in dictionary.items():
max_lengths[k] = max(max_lengths.get(k, 0), len(str(v)))
print(max_lengths)

关于python - 从字典列表中以 pythonic 方式获取每个键值的最大长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33634887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com