python - 在字典列表上进行以下转换的 Pythonic 方式是什么?

标签 python python-3.x list dictionary

我有一个这样的字典列表:

l = [{'name': 'foo', 'values': [1,2,3,4]}, {'name': 'bar', 'values': [5,6,7,8]}]

我想获得这种形式的输出:

>>> [('foo', 'bar'), ([1,2,3,4], [5,6,7,8])]

但缺少 for-looping 和 appending 我没有看到解决方案。有没有比这样做更聪明的方法?

names = []
values = []
for d in l:
    names.append(d['name'])
    values.append(d['values'])

最佳答案

使用生成器表达式:

l = [{'name': 'foo', 'values': [1,2,3,4]}, {'name': 'bar', 'values': [5,6,7,8]}]
v = [tuple(k["name"] for k in l), tuple(k["values"] for k in l)]
print(v)

输出:

[('foo', 'bar'), ([1, 2, 3, 4], [5, 6, 7, 8])]

关于python - 在字典列表上进行以下转换的 Pythonic 方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53046994/

相关文章:

python - 在 Python 中对正则表达式执行 WebDriverWait() 或类似检查

python - @pyglet.window.Window.event 如何工作?

python - 如何使用字典中的重复键生成列表?

python - 使用条件对列表进行切片的优雅方式

r - 追加到 R 中列表的多个元素

python - 基于列的分组和取消分组

Python:字典的值是字符串列表

python - 如何从元素中删除一个字符以及列表中另一个元素中的相应字符?

python - 通过连接传递额外的参数

list - F# If 语句类型不匹配