2 回答

TA贡献1810条经验 获得超4个赞
with open("your_file.txt") as f:
array = [line.rstrip().split(";") for line in f]
说明:
第一行是打开文本文件的安全方式。(该文件将在工作后自动关闭)。
f在该行的末尾成为可迭代对象的名称——每次迭代我们都从打开的文本文件中获取完整的下一行。
现在我们使用该对象通过列表理解(第二行)创建列表 - 请参阅该行的末尾:
for line in f]
因为line包含整行,即带有尾随换行符 ( \n) 符号,我们使用该rstrip()方法将其修剪掉:
[line.rstrip() for line in f]
最后我们将每个这样的字符串拆分成一个列表(使用分隔符;)
[line.rstrip().split(";") for line in f]
并将结果分配给变量array:
array = [line.rstrip().split(";") for line in f]
考试:
from pprint import pprint
pprint(array)
输出:
[['13'],
['Alice', 'START'],
['Bob', 'START'],
['Bob', '1'],
['Carson', 'START'],
['Alice', '15'],
['Carson', '6'],
['David', 'START'],
['David', '24'],
['Evil', 'START'],
['Evil', '24'],
['Evil', 'START'],
['Evil', '18'],
['Fiona', 'START']]
笔记:
文本文件的第一行包含数字 13 - 它可能是剩余行数。如果你想忽略它,只需将 附加[1:]到第二行代码:
with open("your_file.txt") as f:
array = [line.rstrip().split(";") for line in f][1:]

TA贡献1719条经验 获得超6个赞
没有足够的细节,但我会假设第一行是示例的数量,下面几行包含元组,实际上是您提到的字符串数组。
我会采取以下方式:
with open ("input.txt") as f:
no_examples = f.readline().strip()
array = []
for i in range(no_examples):
example = f.readline().strip().split(';')
array.append(example)
对example变量的赋值去除了不可见的行尾字符,并通过分隔符分割结果;。
添加回答
举报