所以我从服务器请求中得到了以下字典:
dict = {"first": "Mark", "last": "Zuckerberg", "alternative": ["Zuck", "Facebook guy"]}
我希望将其转换成这样的列表:
result = ["Mark", "Zuckerberg", "Zuck", "Facebook guy"]
我想我真的是为了个人的满足而努力让它保持 Python 风格。我去过的最接近的是这个,你可以告诉我它只给我嵌套列表而不是我真正要找的东西。
values = list(dict.values())
result = [item for sublist in values for item in sublist if isinstance(sublist, list)]
感谢任何输入。
最佳答案
你可以这样做:
def flatten(s):
for e in s:
if isinstance(e, (tuple, list)):
yield from flatten(e)
else:
yield e
d = {"first": "Mark", "last": "Zuckerberg", "alternative": ["Zuck", "Facebook guy"]}
result = list(flatten(d.values()))
print(result)
输出
['Mark', 'Zuckerberg', 'Zuck', 'Facebook guy']
flatten
函数将处理任意嵌套列表。
关于python - 将字典 <str, list> 展平为综合列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58172798/