如何将子列表元素与管道连接起来?

By simon at 2019-05-18 • 0人收藏 • 10人看过

我有一个表格列表:

名字[123,杰克][杰克・约翰逊,杰克・理查兹,杰克・麦克斯][325,尼克・汤普森,尼克・雅各布斯,尼克・史密斯] ... ].

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

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

是否有一种最佳的方式来遍历列表并进行替换?

我曾经尝试过使用一个类似列表内涵的工具

姓名,名字。 加入(i)为 i 在公司]和使用片,但无法得到我想要的格式。

这个列表是由年的一个字典生成的(这个字典是由熊猫数据库生成的)

D {} for i in df3['key']. 独特的() : d [ i ]['text'][ j ] in df3['key'] i ]。 [ index ] names [ k,v ] for k,v in d.items ()]
2 个回复 | 最后更新于 2019-05-18
2019-05-18   #1

你可以使用一个嵌套的列表内涵Str.join斯特拉,分开为了改变内部列表分隔符:

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

注意,通过使用扩展迭代可拆包这将在子列表之前处理任意数量的字符串。 例如,在另一个例子中:

名字['123,杰克','MORE STRINGS',['杰克 · 约翰逊','杰克 · 理查兹','杰克 · 迈克尔'] ,['325,尼克 · 汤普森','尼克 · 雅各布斯','尼克 · 史密斯'] ,[ i + []。 ['123,jack','MORE STRINGS',['jack | johnson','jack | richards','jack | michaels'] ,['325,nick',['nick | thompson','nick | jacobs','nick | smith']
2019-05-18   #2

这应该可以了。 我加入最后一个列表的子项目与一个|,并将其他项目直接加入清单

名字['123,杰克',['杰克 · 约翰逊','杰克 · 理查兹','杰克 · 迈克尔'] ,['325,尼克 · 汤普森','尼克 · 雅各布斯','尼克 · 史密斯']] ,[[物品] ,[物品]。 [ join (name)]]] for * item,name in names ] print (res)

输出将是

[123,杰克][325,尼克・汤普森,尼克・雅各布斯,尼克・史密斯]

登录后方可回帖

Loading...