Pythonic和安全的方法将整数列表转换为字符串和相对于

时间:2018-01-24 21:15:01

标签: python-3.x

我有list个整数(例如[1, 2, 3]并希望将它们转换为一个字符串(例如"1, 2, 3")。稍后我会将字符串转换回整数列表。

我的解决方案是否足够pythonic或有更简单的方法吗?

# init values
int_list = [1, 2, 3]

# list of integers to string
string = str(int_list)[1:-1]

# string to list of integers
int_list = [int(i) for i in string.split(',')]

顺便说一句:我的第一个方法是做exec("int_list = [" + str + "]")。但绝对不建议使用exec

2 个答案:

答案 0 :(得分:2)

使用map

a = [1, 2, 3]
b = list(map(str, a))
c = list(map(int, b))

编辑:如果你只想要一个字符串,那么

a = [1, 2, 3]
b = ",".join(map(str, a))
c = list(map(int, b.split(",")))

EDIT2:您还可以使用this将地图转换为列表。我不太喜欢它,但它是一个选择:

c = [*map(int, b.split(","))]

答案 1 :(得分:1)

# to string
a = [1,2,3]
s = repr(a)
print(s)

# from string
import ast
print(ast.literal_eval(s))

eval不同,literal_eval"可用于安全地评估包含来自不受信任来源的Python值的字符串,而无需自行解析值。"