当前位置:
首页 > temp > python入门教程 >
-
Python代码阅读(第17篇):列表元素按位合并
本篇阅读的代码实现了多个列表按照元素的位置依序合并成一个新的嵌套列表。每个子列表都是原列表对应位置的元素。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
参数之后的任何形式参数都是“仅限关键字参数”。
来源:https://www.cnblogs.com/felixz/p/15420425.html
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数