python - 如何在对象列表中连接字符串

标签 python string list dictionary

', '.join(strings) 可用于连接列表中的所有字符串。

现在我有一个存储对象的列表,我想将它们的名称连接在一起。例如:

>>> a=[{'name': 'John', 'age': '21'},{'name': 'Mark', 'age': '25'}]
>>> a[0]['name'] + ', ' + a[1]['name']
'John, Mark'

有没有像上面的 join() 这样的简单方法来做到这一点?

最佳答案

您有字典列表而不是对象列表。我们可以像这样将它们连接在一起

print ", ".join(d["name"] for d in a)

d["name"] for d in a 称为生成器表达式,str.join 将从生成器表达式中一一获取值并连接所有值其中 , 位于中间。

但是,如果字典列表太大,那么我们可以自己创建一个字符串列表并将其传递给str.join,如下所示

print ", ".join([d["name"] for d in a])

这里,[d["name"] for d in a] 被称为列表理解,它迭代 a 并创建一个包含所有 a 的新列表>names,我们传递该列表以与 , 连接。

<小时/>

我刚刚注意到评论部分的讨论。请查看this answer要知道为什么列表推导式在字符串连接方面比 GenExp 更好。

关于python - 如何在对象列表中连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24858249/

相关文章:

python - 从 Pandas Dataframe 中的列表中提取元组

python - 如何通过循环将字典列表的列表转换为数据框

Python dict.get() 锁

Python - 将类属性设置为依赖于同一类中其他属性的值

java - 从 JList 中删除空项目

c++ - 是否可以在 C++ 中处理字符串流中的单个元素

python - 开发 Web 服务器与生产 Web 服务器的距离有多近?

python - QStyledItemDelegate 绘制刷新问题

c++ - 为什么只打印这些字符串的最后一个字母?

list - 将列表过滤到单独的列表中