0

我是python新手。我有一堆包含在“allsets”列表中的集合。在每组中,我有多个字符串元素。我需要在一个文本文件中打印我的所有集合,但是,我想找到一种用“|”分隔每个元素的方法 并在开头打印集合的名称。例如:

s1= [string1, string2...]
s2= [string3, string4...]
allsets= [s1,s2,s3...]

我在文本文件中的理想输出应该是:

s1|string1|string2
s2|string3|string4

这是我到目前为止编写的代码,但它只返回一个(错误的)行:

for s in allsets:
   for item in s:
     file_out.write("%s" % item)

有什么帮助吗?谢谢!

4

3 回答 3

1

这些不是“集合”,在 Python 中,它们只是列表。

变量的名称(s1等等)不容易以编程方式获得,因为 Python 变量......很奇怪。请注意,您可以为同一个对象指定多个名称,因此只有一个名称并不明显。

您可以使用字典来解决这个问题:

allsets = { "s1": s1, "s2": s2, ...}

for k in allsets.keys():
  file_out.write("%s|%s" % (k, "|".join(allsets[k]))
于 2013-07-04T12:53:06.887 回答
0
for s in allsets:
   for item in s:
     file_out.write("%s|" % item)
   file_out.write("\n")

\n 换行。

于 2013-07-04T12:52:23.740 回答
0

看看 CSV 模块。IT 为您做一切

这是文档中的一个示例

import csv
with open('eggs.csv', 'wb') as csvfile:
    spamwriter = csv.writer(csvfile, delimiter=' ',
                            quotechar='|', quoting=csv.QUOTE_MINIMAL)
    spamwriter.writerow(['Spam'] * 5 + ['Baked Beans'])
    spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])
于 2013-07-04T12:53:38.227 回答