【问题标题】:Python - Iterating through a list of list with a specifically formatted output; file outputPython - 遍历具有特定格式输出的列表列表;文件输出
【发布时间】:2014-11-03 00:23:20
【问题描述】:

很抱歉问了这么一个微不足道的问题,但我还是找不到答案,这是我使用 Python 的第一天(工作需要它)。认为我的问题是尝试像 C 一样使用 Python。无论如何,这就是我所拥有的:

for i in data:
    for j in i:
        print("{}\t".format(j))

这为我提供了以下形式的数据

elem[0][0]
elem[1][0]
elem[2][0]
...
elem[0][1]
elem[1][1]
...

即一次全部。我真正想做的是直接访问每个元素,这样我就可以将列表数据的列表输出到一个文件,其中元素由制表符分隔,而不是逗号。

这是我用于将数组输出到文件的拙劣 Python 代码:

k=0
with open("Output.txt", "w") as text_file:
    for j in data:
        print("{}".format(data[k]), file=text_file)
        k += 1

所以基本上,我有一个列表列表,我想以制表符分隔/分隔格式保存到文件中,但目前它以逗号分隔。我的方法将涉及再次逐个元素地重复列表,并通过强制进入选项卡来保存输出。

这里是数据摘录(虽然更改为无意义的值)

data
['a', 'a', 306518, ' 1111111', 'a', '-', .... ]
['a', 'a', 306518, ' 1111111', 'a', '-', .... ]
....

text_file
a    a    306518    1111111    a    -....
a    a    306518    1111111    a    -....
....

【问题讨论】:

  • 您能否举例说明您的输入和预期输出。例如。来自data 的 sn-p 以及您希望在输出中显示的内容 text_file
  • 现在添加,谢谢。
  • 谢谢,尽管在没有我要求的其他信息的情况下回答了该问题,但那里的信息对于查看此问题以获取信息的其他人来说更有用:)
  • 完全同意,在问题发布多年后,我已经从这些小cmets中“拯救”了无数次:)

标签: python list file output


【解决方案1】:
for i in data:
    print("\t".join(i))

【讨论】:

  • 这对于我从文件中读取的数据非常有效,但由于某种原因,一旦数据发生更改(读取包含一些数据的文件,对其进行操作,现在代码不起作用) .收到错误:TypeError: sequence item 2: expected str instance, int found.
  • 当然,map(str, i) 而不是仅仅i 将所有项目转换为字符串。这仍然会非常简洁。
【解决方案2】:

如果数据是这样的 '[[1,2,3],[2,3,4]]'

for j in data:
    text_file.write('%s\n' % '\t'.join(str(x) for x in j))

【讨论】:

  • 完美运行,谢谢!我的声誉太低,无法投票,但真的,非常感谢。
  • @Rob 如果它对你有用,那么你可以并且应该接受答案(点击你在答案中看到的复选标记)
  • @Ajean 感谢您的建议,我刚刚做到了。
【解决方案3】:

我认为这应该可行:

with open(somefile, 'w') as your_file:
    for values in data:
        print("\t".join(valeues), file=your_file)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-05
    • 2020-07-01
    • 2016-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-21
    • 1970-01-01
    相关资源
    最近更新 更多