我在变量中有一个像python一样的数据。但我想要在int列表中但不喜欢string.how来转换它吗?

时间:2017-02-28 14:47:37

标签: python-2.7

a="[['212131', '21331', '21323', '113312'], ['21212', '1212', '12211', '212112'], ['1234', '435678', '766576', '7'], ['1222', '2121', '21221', '213131']]"

我有这个字符串类型列表。如何转换为普通列表,以便它将提供a[0][0]='212131'

1 个答案:

答案 0 :(得分:0)

你的问题的标题暗示你最终想要整数。

因此,将计算字符串的ast.literal_eval组合成一个字符串列表列表,其中包含列表解析,将字符串转换为整数,并将列表列表重建为整数列表。

import ast

a = "[['212131', '21331', '21323', '113312'], ['21212', '1212', '12211', '212112'], ['1234', '435678', '766576', '7'], ['1222', '2121', '21221', '213131']]"
# mutate a into the proper type
a = [[int(x) for x in sl] for sl in ast.literal_eval(a)]

print(a)

结果:

[[212131, 21331, 21323, 113312], [21212, 1212, 12211, 212112], [1234, 435678, 766576, 7], [1222, 2121, 21221, 213131]]

和(如预期的那样):

>>> a[0][0]
212131

请注意,如果您希望将a[0][0]='212131'作为字符串,那么a = ast.literal_eval(a)就足够了,并且没有太多可以回答......