什么是读取列表和整数元组的有效方法?
txt 文件中的每一行应如下所示:
([1, 2, 3, 4, 5, 6], 1)
首先想到的是使用.split('],')
,但是接下来如何处理元组?
谢谢!
给定已读入一行,
s = ([1, 2, 3, 4, 5, 6], 1)
我们首先需要解析元组括号。根据你问题的措辞,我的理解是每行只有一个元组。因此,我们可以先使用字符串拼接来删除外面的括号。
s = s[1:len(s) - 1]
给我们,[1, 2, 3, 4, 5, 6], 1
接下来我们要从 int 中拆分列表。使用],
作为分隔符拆分字符串是正确的,但是在这种情况下,我们将留下,
['[1, 2, 3, 4, 5, 6', ' 1']
一种类似但略有不同的方法是使用正则表达式并仅在直接由]
进行的,
上进行拆分 我们将使用正面回溯技术来实现这一点。
import re
s = s[1:len(s) - 1]
regex = '(?<=]), '
results = re.split(regex, s)
现在results
将是两个值的列表,
- 列表的字符串表示形式,
[1, 2, 3, 4, 5, 6]
- 我们的整数值
1
为字符串
最后,为了拆分和使用我们的元组值,我们将使用类似的方法。
- 通过拼接移除左括号和右括号
- 使用
,
作为分隔符拆分剩余字符串
如图所示,
listResult = results[0]
listResult = listResult[1:len(listResult) - 1]
listResult = listResult.split(', ')
最后,我们的整数值可以通过访问索引1
results
列表来获得,
intResult = results[1]