繁体   English   中英

如何在 Python 中将文本文件(每个单独的项目在自己的行上)读入 2D 列表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM