我有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
。
答案 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值的字符串,而无需自行解析值。"