基于ch拆分列表的元素

2024-10-01 19:33:51 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我有一个元素列表,其中一些元素之间有一个“,”,我希望分裂成不同的元素 例如:

['Agrigento',
 ' Tal Andar, Regie Curie',
 ' Landar ta il Geuenie',
 ' Landar ta il Guedi,  Casali Bisibud',
 'Aragonia',
 'Athene']

应该是这样的:

 ['Agrigento',
     ' Tal Andar',
     ' Regie Curie',
     ' Landar ta il Geuenie',
     ' Landar ta il Guedi',  
     ' Casali Bisibud',
     'Aragonia',
     'Athene']

你知道怎么可能吗。我想保持分裂的两个元素


Tags: 元素iltaltacasaligeuenieguediathene
2条回答

可以将list-comprehensionflattening arrays的标准方案一起使用:

lst = ['Agrigento',
 ' Tal Andar, Regie Curie',
 ' Landar ta il Geuenie',
 ' Landar ta il Guedi,  Casali Bisibud',
 'Aragonia',
 'Athene']

lst = [x for y in lst for x in y.split(',')]
print(lst)  # -> ['Agrigento', ' Tal Andar', ' Regie Curie', ' Landar ta il Geuenie', ' Landar ta il Guedi', '  Casali Bisibud', 'Aragonia', 'Athene']

注意:我们利用了这样一个事实,即拆分不包含用作分隔符的字符的字符串会在列表中返回相同的字符串:

>> 'a'.split('b')
['a']

因此,平坦化不会遇到任何障碍。有关详细信息,请参阅^{}。你知道吗


最后,正如@tobias所说,如果您想去掉名称前后的空格,可以使用^{}方法。只需将上述理解改为下面给出的理解。你知道吗

lst = [x.strip() for y in lst for x in y.split(',')]
print(lst)  # -> ['Agrigento', 'Tal Andar', 'Regie Curie', 'Landar ta il Geuenie', 'Landar ta il Guedi', 'Casali Bisibud', 'Aragonia', 'Athene']
elements = ['Agrigento', ' Tal Andar, Regie Curie', ' Landar ta il Geuenie', ' Landar ta il Guedi,  Casali Bisibud', 'Aragonia', 'Athene']
result = []

for elem in elements:
    if ',' in elem:
        result.extend([s for s in element.split(',')])
    else:
        result.append(elem)

print(result)

相关问题 更多 >

    热门问题