枚举压缩列表时,如何避免嵌套元组解压缩?
问题描述:
在枚举这样的元组列表时,如何避免使用嵌套元组进行解包?枚举压缩列表时,如何避免嵌套元组解压缩?
for i, (x, y) in enumerate(zip("1234", "ABCD")):
# do stuff
答
使用自定义zip
样的函数,返回一个列表的列表,而不是一个元组列表。
def zip2(*sequences):
"""zip(seq1 [, seq2 [...]]) -> [(seq1[0], seq2[0] ...), (...)]
Return a list of lists, where each list contains the i-th element
from each of the argument sequences. The returned list is truncated
in length to the length of the shortest argument sequence."""
if not sequences:
return []
result = []
iterators = [iter(seq) for seq in sequences]
while True:
try:
items = [next(it) for it in iterators]
except StopIteration:
return result
result.append(items)
for i, v in enumerate(zip2("1234", "ABCD")):
print i, v[0], v[1]
您是否知道可以在“问题问题”表单(称为“回答自己的问题”)中勾选一个框,并一次性输入答案? – 2012-08-15 11:48:05
该代码有什么问题? – jamylak 2012-08-15 11:49:06
@jamylak没有什么,除了至少对我来说,这感觉比我刚刚发布的答案更尴尬。 – 2012-08-15 11:49:53