如何将元组拆分为两个列表?

JRR*_*JRR 3 python

下面的函数foo接受一个数字并返回一个字符串元组。我可以将下面的循环写成一行吗?

r1 = []
r2 = []
for i in range(10):
  (s1, s2) = foo(i)
  r1.append(s1)
  r2.append(s2)

# r1 now has the first returned strings from each iteration of the loop, and similarly for r2
Run Code Online (Sandbox Code Playgroud)

小智 5

你只需要做这个简单的事情

r1, r2 = map(list, zip(*foo))
Run Code Online (Sandbox Code Playgroud)