如何在python中拆分列表中的数字和字符串

如何在python中拆分列表中的数字和字符串,python,list,Python,List,我有数据清单:['66306莫桑比克','63344萨尔瓦多','60221新加坡']。我想把数字和字符串分成以下几部分:['66306'、'莫桑比克'、'63344'、'萨尔瓦多'、'60221'、'Singapore'],有什么办法吗?您可以在空格处拆分一次,这将生成列表: lst = ['66306 Mozambique', '63344 El Salvador', '60221 Singapore'] lst = [i.split(" ", 1) for i in l

我有数据清单:
['66306莫桑比克','63344萨尔瓦多','60221新加坡']
。我想把数字和字符串分成以下几部分:
['66306'、'莫桑比克'、'63344'、'萨尔瓦多'、'60221'、'Singapore']
,有什么办法吗?

您可以在空格处拆分一次,这将生成列表:

lst = ['66306 Mozambique', '63344 El Salvador', '60221 Singapore']
lst = [i.split(" ", 1) for i in lst]
print(lst)
输出:

[['66306', 'Mozambique'], ['63344', 'El Salvador'], ['60221', 'Singapore']]
['66306', 'Mozambique', '63344', 'El Salvador', '60221', 'Singapore']
然后需要将其展平,例如使用列表理解,如下所示

lst = [item for subl in lst for item in subl]
print(lst)
输出:

[['66306', 'Mozambique'], ['63344', 'El Salvador'], ['60221', 'Singapore']]
['66306', 'Mozambique', '63344', 'El Salvador', '60221', 'Singapore']

请记住有,如果更适合您的情况,请随意使用其他方法。

您可以对列表执行联接操作,然后在空格上拆分列表

input = ['66306 Mozambique', '63344 El Salvador', '60221 Singapore']

res = ' '.join(input).split(' ')

print(res)

#output =
['66306', 'Mozambique', '63344', 'El', 'Salvador', '60221', 'Singapore']
如果元素之间用空格分隔,则可以使用
split()
[e代表elt,x代表elt.split()中的e]