如何清理列表

2024-06-02 06:07:34 发布

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

我有一张这样的清单

countries = ["['Luxemburgo ", 'Suiza ', 'Noruega ', 'Irlanda ', 'Islandia ', 'Catar ', 'Singapur ', 'Estados Unidos ', 'Dinamarca ', 'Australia ', 'Suecia ', 'Países Bajos ', 'San Marino ', 'Austria ', 'Finlandia ', 'Alemania ', 'Hong Kong ', 'Bélgica ', 'Canadá ', 'Emiratos Árabes Unidos ', 'Reino Unido ', 'Israel ', 'Nueva Zelanda ', 'Francia ', "Japón ']"]

我不知道如何把它转换成一个真正的列表。如果打印第一个元素:

>>> print(countries[0])
['Luxemburgo 

我如何才能消除[而且它会有两个“”,因为它是一个字符串,但列表中的其余单词只打印没有“”的单词


Tags: 列表单词countriesaustraliaestadosunidosirlandaluxemburgo
2条回答

您可以这样做:

countries = ["['Luxemburgo ", 'Suiza ', 'Noruega ', 'Irlanda ', 'Islandia ', 'Catar ', 'Singapur ', 'Estados Unidos ', 'Dinamarca ', 'Australia ', 'Suecia ', 'Países Bajos ', 'San Marino ', 'Austria ', 'Finlandia ', 'Alemania ', 'Hong Kong ', 'Bélgica ', 'Canadá ', 'Emiratos Árabes Unidos ', 'Reino Unido ', 'Israel ', 'Nueva Zelanda ', 'Francia ', "Japón ']"]
lis=[]
for x in countries:
  lis.append(x.replace("['","").replace("']",""))
print(lis[0])  

输出:

Luxemburgo

更好的问题是:列表来自何处,我们能否从源头解决问题

但您现在可以通过执行以下操作来修复它:

import ast
countries_fixed = ast.literal_eval("', '".join(countries))

之后,列表元素仍然包含空格,要解决这一问题,您可以改为:

countries_fixed = ast.literal_eval(
    "', '".join(country.strip() for country in countries)
)

结果:

>>> print(countries[0])
Luxemburgo 

相关问题 更多 >