考虑到可扩展性和可读性,其中哪一个被认为是更加pythonic?
使用枚举:
group = ['A','B','C']
tag = ['a','b','c']
for idx, x in enumerate(group):
print(x, tag[idx])
或使用zip:
for x, y in zip(group, tag):
print(x, y)
我问的原因是我一直在混合两者.我应该遵循一种标准方法,但它应该是什么?
解决方法:
毫无疑问,拉链是更加pythonic.它不要求您使用变量来存储索引(您不需要),并且使用它可以统一处理列表,而使用枚举,您迭代一个列表,并索引另一个列表,即不均匀的处理.
但是,您应该知道zip只运行到两个列表中较短的一个的警告.为了避免重复别人的回答,我在这里只提供一个参考:someone else’s answer.
@ user3100115恰当地指出在python2中,你应该更喜欢使用itertools.izip而不是zip,因为它的懒惰性质(更快,内存效率更高).在python3中zip已经像py2的izip一样.