【问题标题】:Using a for loop to print each item of a list from an external file in Python使用 for 循环从 Python 中的外部文件打印列表的每个项目
【发布时间】:2018-09-29 07:38:28
【问题描述】:

我正在编写一个从 .txt 文件中读取 2D 列表的程序,我正在尝试遍历该列表,并打印其中的每个项目。我使用了一个 for 循环来遍历列表中的每个项目。 .txt文件中二维列表的内容为:

['1', '10']
['Hello', 'World']

到目前为止,这是我打开文件、读取文件并遍历列表中每个项目的代码:

file = open('Original_List.txt', 'r')

file_contents = file.read()

for i in file_contents.split():
    print(i)           

file.close()

我从这个 for 循环得到的输出是:

['1',
'10']
['Hello',
'World']

但是,我想要得到的输出是:

1       10
Hello   World

有什么方法可以得到这个输出吗?我不确定如何删除方括号、逗号和引号。一旦完成,我无法弄清楚如何格式化这些行,以便它们显示为它们出现在外部文件中(每个项目之间有标签)。我对 Python 很陌生,所以任何建议都会很棒!

【问题讨论】:

    标签: python-3.x list for-loop


    【解决方案1】:

    在换行符处拆分并以您的格式输出:

    from ast import literal_eval
    
    file_contents = file.readlines() #read the file as lines
    for line in file_contents:
        l = literal_eval(line) #convert the string to a list
        print(''.join([v.ljust(10, ' ') for v in l])) #left justify and print
    

    【讨论】:

    • 天哪,我不知道。谢谢:)
    • 这实际上不是我想要的,因为出于某种原因,变量 a 不包含列表的单行,而是包含所有其他行。我通过在 print(a) 之后添加 break 来测试这一点,以查看变量 a 中存储的内容。我需要变量 a 仅存储列表的一行,因为我正在尝试打印列表,并将其格式化为列,类似于使用 numpy 时的矩阵。
    • 如果您希望它不加选择地打印每一行,您可以使用第一个解决方案。给我一个输入文件的样本
    • 对不起,我稍微改变了我的问题,不想让任何人感到困惑。你去,它的背面
    • 等等我的回答没有解决你的问题吗?告诉我发生了什么,我会编辑 :)
    猜你喜欢
    • 2017-02-25
    • 1970-01-01
    • 1970-01-01
    • 2018-02-15
    • 1970-01-01
    • 1970-01-01
    • 2017-05-22
    • 2017-08-16
    • 2022-11-17
    相关资源
    最近更新 更多