Python技术问询:如何用for循环打印外部文件中二维列表的每个元素
解决Python读取txt中二维列表并遍历元素的问题
我懂你现在的困扰——直接用split()处理txt里的列表字符串,输出结果根本不是你想要的单个元素对吧?咱们一步步把这个问题捋顺解决。
问题分析
你当前的代码里,file_contents.split()会把txt内容按空格拆成零散的字符串片段。比如你的txt内容是['1', '10'] ['Hello', 'World'],split之后得到的是["['1',", "'10']", "['Hello',", "'World']"],遍历打印自然只会输出这些碎片化的内容,而不是二维列表里的每个元素。
正确解决方案
要把txt里的字符串格式列表转换成真正的Python二维列表,咱们可以用ast模块的literal_eval()方法,它能安全地将字符串解析成对应的Python数据结构。另外推荐用with语句打开文件,不用手动调用close(),既简洁又避免资源泄漏。
修改后的代码如下:
import ast # 用with语句自动管理文件上下文 with open('Original_List.txt', 'r') as file: file_contents = file.read() # 将字符串解析为标准二维列表 two_d_list = ast.literal_eval(file_contents) # 嵌套循环遍历每个元素 for sub_list in two_d_list: for item in sub_list: print(item)
注意事项
这里要提醒你:txt里的内容需要是标准的Python二维列表格式,也就是得在外层加个大括号,写成[['1', '10'], ['Hello', 'World']],不然literal_eval()会报错哦。
最终输出结果
运行这段代码后,你会得到期望的输出:
1 10 Hello World
内容的提问来源于stack exchange,提问作者Newoej
相关产品推荐
相关产品推荐

