Python 中 list/tuple 的多个 %s
Multiple %s with list/tuple in Python
我试图将相同的字符串从 list/tuple 输出到不同的 %s,我尝试使用这个:
A = ('A', 'B', 'C', 'D')
# A = list(('A', 'B', 'C', 'D')
print type(A)
output = open('output.txt', 'w')
output.writelines('Multiple outputs like %s and %s\n' % (f for f in A, f for f in A))
output.close()
Python是怎么做的?
但它会产生语法错误。我需要以下形式的输出:
Multiple outputs like A and A
Multiple outputs like B and B
Multiple outputs like C and C
Multiple outputs like D and D
这应该有效:
output.writelines(('Multiple outputs like %s and %s\n' % (f,f)) for f in A)
我可能会这样做:
output.writelines(('Multiple outputs like %s and %s\n' % t for t in zip(A, B))
这里我假设您实际上不需要两次相同的值(否则,请参阅@Petter 的回答)但是有一个单独的可迭代 B
您希望看到 "paired" 与 A
在输出中。
最 Pythonic 的方法是使用 output.writelines()
和 string.format()
函数:
output.writelines(('Multiple outputs like {word} and {word}\n'.format(word=w) for w in A))
我试图将相同的字符串从 list/tuple 输出到不同的 %s,我尝试使用这个:
A = ('A', 'B', 'C', 'D')
# A = list(('A', 'B', 'C', 'D')
print type(A)
output = open('output.txt', 'w')
output.writelines('Multiple outputs like %s and %s\n' % (f for f in A, f for f in A))
output.close()
Python是怎么做的?
但它会产生语法错误。我需要以下形式的输出:
Multiple outputs like A and A
Multiple outputs like B and B
Multiple outputs like C and C
Multiple outputs like D and D
这应该有效:
output.writelines(('Multiple outputs like %s and %s\n' % (f,f)) for f in A)
我可能会这样做:
output.writelines(('Multiple outputs like %s and %s\n' % t for t in zip(A, B))
这里我假设您实际上不需要两次相同的值(否则,请参阅@Petter 的回答)但是有一个单独的可迭代 B
您希望看到 "paired" 与 A
在输出中。
最 Pythonic 的方法是使用 output.writelines()
和 string.format()
函数:
output.writelines(('Multiple outputs like {word} and {word}\n'.format(word=w) for w in A))