嗨,我有一个元素列表,其中一些元素之间有一个',',我希望将它们分成单独的元素 例如:
['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']
任何想法都是可能的。我想保留拆分的两个元素
答案 0 :(得分:3)
您可以将list-comprehension与flattening 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']
因此,拼合没有障碍。有关更多信息,请参见split
。
最后,如@tobias所说,如果要消除名称前后的空格,可以使用strip()
方法。只需将上面的理解修改为下面给出的理解即可。
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']
答案 1 :(得分:0)
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)