[英]How to read a text file (each individual item on its own line) into a 2D list in Python
尝试将文本文件读入 Python 中的 2D 列表。 “people2.txt”是单行顺序(每个项目在自己的行上)
fred
23
ann
27
bob
24
到目前为止的代码:
details_list=[]
people2=open("people2.txt","r")
for line in people2.readlines():
details_list.append(line.split())
people2.close()
print(details_list)
当我需要“配对”时,我得到的是它自己列表中的每个元素? 我越来越
[["fred"],["23"],["ann"],["27"],["bob"],["24"]]
我需要的是:
[["fred","23"],["ann","27"],["bob","24"]]
用:
with open("people.txt") as infile:
res = []
for name, value in zip(infile, infile):
res.append([name.strip(), value.strip()])
print(res)
输出
[['fred', '23'], ['ann', '27'], ['bob', '24']]
表达方式:
for name, value in zip(infile, infile):
允许您在文件上以两行的块进行迭代,作为旁注,您还应该使用上下文管理器来读取文件。
如果你已经有一个字符串的平面列表(如果更换,你将有line.split()
与line.strip()
你可以把2片该列表的第2步(即一个片具有偶数索引元素,另一个具有奇数索引元素),然后使用zip
将它们配对:
lines = ["Fred", "23", "Ann", "27", "Bob", "24"]
pairs = list(zip(lines[::2], lines[1::2]))
print(pairs)
这输出
[('Fred', '23'), ('Ann', '27'), ('Bob', '24')]
这不仅适用于文件读取,但如果您有一个大文件,则开始时将它们成对读取会更高效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.