2 回答

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊
with open("your_file.txt") as f:
array = [line.rstrip().split(";") for line in f]
說明:
第一行是打開文本文件的安全方式。(該文件將在工作后自動(dòng)關(guān)閉)。
f在該行的末尾成為可迭代對(duì)象的名稱——每次迭代我們都從打開的文本文件中獲取完整的下一行。
現(xiàn)在我們使用該對(duì)象通過列表理解(第二行)創(chuàng)建列表 - 請(qǐng)參閱該行的末尾:
for line in f]
因?yàn)閘ine包含整行,即帶有尾隨換行符 ( \n) 符號(hào),我們使用該rstrip()方法將其修剪掉:
[line.rstrip() for line in f]
最后我們將每個(gè)這樣的字符串拆分成一個(gè)列表(使用分隔符;)
[line.rstrip().split(";") for line in f]
并將結(jié)果分配給變量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']]
筆記:
文本文件的第一行包含數(shù)字 13 - 它可能是剩余行數(shù)。如果你想忽略它,只需將 附加[1:]到第二行代碼:
with open("your_file.txt") as f:
array = [line.rstrip().split(";") for line in f][1:]

TA貢獻(xiàn)1719條經(jīng)驗(yàn) 獲得超6個(gè)贊
沒有足夠的細(xì)節(jié),但我會(huì)假設(shè)第一行是示例的數(shù)量,下面幾行包含元組,實(shí)際上是您提到的字符串?dāng)?shù)組。
我會(huì)采取以下方式:
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)
對(duì)example變量的賦值去除了不可見的行尾字符,并通過分隔符分割結(jié)果;。
添加回答
舉報(bào)