免责声明:
所有其他的答案是非常良好做法好的建议用于存储数据,并在以后的阅读他们,但既然你特别问到如何“的字符串转换来自取出将文本文件整理成一个整数列表......“,我很乐意帮助完成这样的事情。
然而,虽然这个答案可能是适合你的要求做了具体的东西,它绝不是最佳实践达到你想要的(在整数列表保存,这将是更好做过什么与JSON或YAML)。
SOLUTION
好吧,这似乎相当简单。
您有原始的列表[10, 21, 42, 5]
。
你将它保存到一个文本文件,然后读取它作为一个清单才发现有两个部分(和他们回馈字符串+什么是额外0
?!):
['10, 21, 42, 5', '0']
好像你只需要在第一部分中,所以:
>>> x = ['10, 21, 42, 5', '0']
>>> y = x[0]
>>> print(y)
'10, 21, 42, 5'
>>> print(type(y))
str
别急,返回一个字符串!很简单,只是通过分离", "
分裂:
>>> z = y.split(", ")
>>> print(z)
['10', '21', '42', '5']
现在,它返回一个列表,但它仍然是一个字符串列表,所以我们要做的就是名单中的每个元素转换成类型int
(整数)。这是很容易与标准for
循环做的,但我们可以做这一个班轮与map
功能:
...
>>> print(z)
['10', '21', '42', '5']
>>> z = map(int, z) # apply int() to every elem; equi. to [int('10'), int('21'), int('42'), int('5')]
>>> print(z)
[10, 21, 42, 5]
>>> print(map(type, z)) # print out type of every element in list
[int, int, int, int]
结论
因此,考虑的读入名单离奇的字符串x = ['10, 42, 21, 5', '0']
,你可以得到你想要的与整数的列表:
z = map(int, x[0].split(", "))
你是如何保存到文本文件,你怎么装呢? –
考虑类似于使用'json'序列化的字典。 'dict'键可以是用户标识符,值可以是余额。 –
如果您的邮政编码(以最简单的方式),您可能会得到更好的答案。 –