Python 如何将子列表的元素与管道连接?

Python 如何将子列表的元素与管道连接?,python,Python,我有一份表格清单: name=['123,杰克',['jack johnson,jack richards,jack michaels'],['325,nick',['nick thompson,nick jacobs,nick smith'],…] 其中,每个通用名都有一个与其关联的id,而该元素的子列表包含以通用名开头的每个全名 我想更改包含全名的子列表的每个元素,并用管道替换逗号,以便以以下形式给出列表: name=['123,杰克',['jack johnson | jack richa

我有一份表格清单:

name=['123,杰克',['jack johnson,jack richards,jack michaels'],['325,nick',['nick thompson,nick jacobs,nick smith'],…]

其中,每个通用名都有一个与其关联的id,而该元素的子列表包含以通用名开头的每个全名

我想更改包含全名的子列表的每个元素,并用管道替换逗号,以便以以下形式给出列表:

name=['123,杰克',['jack johnson | jack richards | jack michaels'],['325,nick',['nick thompson | nick jacobs | nick smith'],…]


是否有一种迭代列表并进行替换的最佳方法?

您可以使用嵌套列表理解,并使用with来更改内部列表分隔符:

[i + ['| '.join(j)] for *i, j in names]

[['123, jack', 'jack johnson| jack richards| jack michaels'],
 ['325, nick', 'nick thompson| nick jacobs| nick smith']]

请注意,通过使用此选项,将在子列表之前处理任意数量的字符串。例如,在另一个例子中:

names = [['123, jack', 'MORE STRINGS', ['jack johnson', 'jack richards', 'jack michaels']],
         ['325, nick',['nick thompson', 'nick jacobs', 'nick smith']]]

[i + ['| '.join(j)] for *i, j in names]

[['123, jack', 'MORE STRINGS', 'jack johnson| jack richards| jack michaels'],
 ['325, nick', 'nick thompson| nick jacobs| nick smith']]