• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

关于python:Python代码阅读第17篇列表元素按位合并

python 搞代码 3年前 (2022-02-20) 24次浏览 已收录 0个评论

Python 代码浏览合集介绍:为什么不举荐Python初学者间接看我的项目源码

本篇浏览的代码实现了多个列表依照元素的地位依序合并成一个新的嵌套列表。每个子列表都是原列表对应地位的元素。zip()itertools.zip_longest()提供了相似于这段代码的性能。

本篇浏览的代码片段来自于30-seconds-of-python。

merge

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

# EXAMPLES
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]]

merge函数接管多个列表和一个填充值fill_value,返回一个嵌套列表。该嵌套列表的元素个数等于最长的输出列表的长度,每个子列表的元素顺次来自于输出列表的雷同地位,输出列表的元素有余的状况下,应用填充值代替。也就是说merge_list[0]是一个列表,其中的元素顺次为输出列表索引为0的元素。

函数应用max联合list comprehension失去参数中最长的列表的长度。联合应用range()max_length变量来循环。如果一个列表的长度短于max_length,则残余的我的项目应用fill_value(默认为None)来进行填充。

函数调用同时应用了“关键字参数”和“可变参数”的形式。在第9篇的时候介绍了独自应用“可变参数”调用的形式。一般来说,这些“可变参数”将在形式参数列表的开端,因为它们收集传递给函数的所有残余输出参数。呈现在*args参数之后的任何形式参数都是“仅限关键字参数”。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于python:Python代码阅读第17篇列表元素按位合并
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址