在 Python 中更改列表中混合元素的类型



>我有一个列表:

g=['Зенит','3', 'Спартак', '1', 'Спартак', '1', 'ЦСКА', '1', 'ЦСКА', '0', 'Зенит', '2']

我需要将 int 元素更改为 int。 结果是这样的:

g=['Зенит',3... ]

如何?

您可以使用一个简短的方法try的转换并返回int或值本身,并将其与列表推导式组合:

g=['a','3', 'b', '1', 'c', '1', 'd', '1', 'e', '0', 'f', '2']
def tryInt(text):
"""Tries to convert text to int. Either returns an int or text"""
try:
return int(text)
except: # catchall for any error whatsoever
return text
g2 = [tryInt(value) for value in g]
print(g2)

输出:

['a', 3, 'b', 1, 'c', 1, 'd', 1, 'e', 0, 'f', 2]

请参阅: Python 异常

你可以试试这个:

g = [int(value) if value.isdigit() else value for value in g]
print (g)

最新更新