编写备用列表的元素 - Python

时间:2011-08-10 11:29:56

标签: python list formatting

我正在尝试使用Python将多个列表的交替元素写入文件。我可以写一个列表的所有列表,然后是所有另一个列表,但是我很难以其他顺序执行此操作。我的代码如下所示:

foo = ['a', 'b', 'c']
bar = ['1', '2', '3']
fileout = open('zut.txt', 'w')
for i, el in foo, bar:
    fileout.write('%s\t%s' % (i, el))

然而,当我尝试运行它时会产生ValueError。为了澄清,我正在尝试生成这样的文件:

a    1
b    2
c    3

任何人都可以帮助我实现这一目标吗?谢谢!

4 个答案:

答案 0 :(得分:5)

>>> zip(foo,bar)
[('a', '1'), ('b', '2'), ('c', '3')]

然后,您可以遍历列表并访问元组的元素。

>>> for tpl in zip(foo, bar):
...   print '%s\t%s' % tpl
...
a       1
b       2
c       3

答案 1 :(得分:3)

您可以使用以下代码:

foo = ['a', 'b', 'c']
bar = ['1', '2', '3']
with open('zut.txt', 'w') as fileout:
    for x,y in zip(foo, bar):
        fileout.write('%s\t%s\n' % (x,y)) # you missed here '\n'

详细了解'zip'并使用'with open ...'以确保该文件将自动关闭

答案 2 :(得分:2)

for letter, number in zip(foo, bar):
    fileout.write('%s\t\%s' % (letter, number))

答案 3 :(得分:1)

您可以使用内置的zip函数创建那种“对应”列表,然后将其写入文件:

foo = ['a', 'b', 'c']
bar = ['1', '2', '3']

lst = zip(foo, bar)

with open('zut.txt', 'w') as f:
    for pair in lst:
        f.write( '{0}\t{1}'.format(pair[0], pair[1]) )