如何在Python中拆分列表元素
我在下面有一个清单。我想拆分如下:
['动画','儿童','喜剧','冒险','儿童','奇幻','喜剧','浪漫','喜剧','戏剧']
clist = ["Animation|Children's|Comedy",
"Adventure|Children's|Fantasy",
'Comedy|Romance',
'Comedy|Drama']
for i,x in enumerate(clist):
if '|' in x:
clist[i] = x[:x.index('|')]
它返回这个:
['动画'、'冒险'、'喜剧'、'喜剧']
回答
split如果您想产生相同的结果,我建议在理解中使用:
>>> [c.split("|")[0] for c in clist]
['Animation', 'Adventure', 'Comedy', 'Comedy']
如果您想要将所有单个列表元素而不是第一个元素压平到一个列表中,那么这只是一个嵌套的理解:
>>> [g for c in clist for g in c.split("|")]
['Animation', "Children's", 'Comedy', 'Adventure', "Children's", 'Fantasy', 'Comedy', 'Romance', 'Comedy', 'Drama']