代码片段精选 #001:合并列表

这是本公众号推出一个#代码片段#的系列合集,分享平常学习或阅读过程中发现的实用代码片段(Code Snippets),会涉及 Python、JavaScript、TypeScritp、Swift等多种语言。

欢迎大家关注公众号获取最新推送,也可以进入合集页面点击订阅,直接获取合集更新推送。

合集传送门:代码片段精选

本文关键词:
45d0aec27599cb1a93134002c98a97fc.png

合并列表

将两个或多个列表合并为一个列表的列表,根据每个输入列表的位置合并元素。

  • 将 max() 与列表推导式( list comprehension )结合使用,可获取参数中最长列表的长度。

  • 将 range() 与 max_length 变量结合使用,循环次数与最长列表中的元素数量相同。

  • 如果列表短于 max_length,则对剩余项使用 fill_value(默认为无)。

  • zip() 和 itertools.zip_longest() 提供了与本代码段类似的功能。

04f2d0a168027158dbf1c6910c3e92fd.png
def merge(*args, fill_value = None):
  max_length = max([len(lst) for lst in args])
  result = []
  for i in range(max_length):
    result.append([
      args[k][i] if i < len(args[k]) else fill_value for k in range(len(args))
    ])
  return result

merge(['a', 'b'], [1, 2], [True, False]) # [['a', 1, True], ['b', 2, False]]
merge(['a'], [1, 2], [True, False]) # [['a', 1, True], [None, 2, False]]
merge(['a'], [1, 2], [True, False], fill_value = '_')
# [['a', 1, True], ['_', 2, False]]

Source: https://www.30secondsofcode.org/python/s/merge/

- EOF -

回复下方「关键词」,获取优质资源

回复关键词「 pybook03」,领取进击的Grey与小伙伴一起翻译的《Think Python 2e》电子版

回复关键词「书单02」,领取进击的Grey整理的 10 本 Python 入门书的电子版

👇关注我的公众号👇

告诉你更多细节干货

33585745455bcd9d7f180b554a0f854b.jpeg

欢迎围观我的朋友圈

👆每天更新所想所悟

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值