如何将列表的元素转换为字符串?

Posted

技术标签:

【中文标题】如何将列表的元素转换为字符串?【英文标题】:How to turn it an element of a list to a string? 【发布时间】:2021-12-23 05:42:35 【问题描述】:

我在数据框的一列中有这样的列表:

list1 = [[Petitioner Jae Lee,his,he],[]]

list2 = [[lee],[federal officials]]

list3 = [[],[lawyer]]

但我想变成

list1 = ['Petitioner Jae Lee' , 'his','he']
list2 = ['lee' , 'federal officials']]
list3 = ['lawyer']

我想为数据框中的列执行此操作。我该怎么做?

【问题讨论】:

你是如何读取这些数据的?当前的 Pandas 很可能已经默认将其作为字符串引入。在解决不应该成为问题的问题之前,您可能想回到起点。 【参考方案1】:
list1 = [['Petitioner Jae Lee','his','he'],[]]
list2 = [['lee'],['federal officials']]
list3 = [[],['lawyer']]

flat_list1 = [item for sublist in list1 for item in sublist]
flat_list2 = [item for sublist in list2 for item in sublist]
flat_list3 = [item for sublist in list3 for item in sublist]

print(flat_list1)
print(flat_list2)
print(flat_list3)

【讨论】:

【参考方案2】:

使用Series.map 逐行应用逻辑。

要将子列表连接成一个列表,您可以使用内置的sum 函数

df['col'] = df['col'].map(lambda list_i : sum(list_i, []))

更好的选择是解压子列表并将它们传递给itertools.chain

import itertools as it 
df['col'] = df['col'].map(lambda list_i : list(it.chain(*list_i)))

或者使用嵌套列表推导

df['col'] = df['col'].map(lambda list_i : [string for sublist in list_i for string in sublist])

【讨论】:

以上是关于如何将列表的元素转换为字符串?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python 将多个字符串元素列表转换为单个元素以逗号分隔的列表

在 R 中使用混合类型将嵌套列表中的字符数字转换为数字

将列表的每个元素中的列转换为字符串

将看起来像列表的字符串转换为真正的列表 - python

如何将两个列表转换为字典(一个列表是键,另一个是值)? [复制]

将嵌套列表的单个元素从因子转换为字符