问一个关于zip函数的问题

cwmlow 2019-02-21 05:15:58

a = [('a1',2,3),('a2',4,5)]
b = [('b1',22,33),('b2',44,55)]
c = [('b1',222,333),('b2',444,555),('c3',666,777)]
zipped = zip(a,b,c)
print(list(zipped))

zip函数会根据最短长度进行合并列表,因此不输出('c3',666,777)
那列表长度不一致时,能否用zip函数解决吗?
...全文
284 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
手无护鸡之力 2019-02-26
  • 打赏
  • 举报
回复
想以最短为准就用zip
想以最长为准就用zip_longest

#python 3.6
from itertools import zip_longest

z = zip_longest([1,2,3], [2], fillvalue=0)
list(z)
# [(1, 2), (2, 0), (3, 0)]
ssj021224 2019-02-23
  • 打赏
  • 举报
回复
如果列表长度不一致,那用zip的前提就不存在,自然不能直接用zip来解决。把短的列表填充一样长度后再说吧。

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧