通过python将列表列表写入COLUMNED .txt文件

tre*_*ime 5 python list

我有一个看起来像的列表

[["a","b","c","d"],["e","f","g","h"],["i","j","k","l"]]
Run Code Online (Sandbox Code Playgroud)

如何将此列表列表转换为看起来像的文本文件

a  b  c  d
e  f  g  h
i  j  k  l
Run Code Online (Sandbox Code Playgroud)

它似乎很简单,但网络上的解决方案似乎都没有简洁明了,足以让我这样的假人理解.

谢谢!

Jan*_*Jan 6

在这里赞美理解的力量:

lst = [["a","b","c","d"],["e","f","g","h"],["i","j","k","l"]]

out = "\n".join([" ".join(sublist) for sublist in lst])
print(out)
Run Code Online (Sandbox Code Playgroud)

这产生了

a b c d
e f g h
i j k l
Run Code Online (Sandbox Code Playgroud)

或者,更长,也许更容易理解:

for sublist in lst:
    line = " ".join(sublist)
    print(line)
Run Code Online (Sandbox Code Playgroud)


如果您的元素长度不同,您可以利用.format():

lst = [["a","b","cde","d"],["e","f","g","h"],["i","j","k","l"]]

out = "\n".join(["".join("{:>5}".format(item) for item in sublst) for sublst in lst])
print(out)
Run Code Online (Sandbox Code Playgroud)

哪个会产生

a    b  cde    d
e    f    g    h
i    j    k    l
Run Code Online (Sandbox Code Playgroud)


小智 4

发帖只是为了突出显示您需要采取的步骤

l = [['a','b','c','d'], ['e', 'f', 'g', 'h'], ['i', 'j', 'k', 'l']]
with open('my_file.txt', 'w') as f:
    for sub_list in l:
        for elem in sub_list:
            f.write(elem + ' ')
        f.write('\n')
Run Code Online (Sandbox Code Playgroud)

  • 虽然这确实有效,但如此频繁地调用 write() 效率相当低。 (3认同)