Python如何对嵌套列表指定索引元素执行差值运算得到目标结果
实现代码
直接用Python原生列表推导式即可实现,无需引入第三方依赖:
# 定义原始嵌套列表 l1 = [[403, 105], [403, 100], [403, 92], [403, 95], [403, 89]] # 1. 计算子列表索引0元素减403的差值,验证是否全为0 # 若要匹配预期的4位输出,取第一个子列表之外的所有元素计算即可 diffelement1 = [item[0] - 403 for item in l1[1:]] # 验证所有差值是否为0的校验逻辑 is_all_zero = all(i == 0 for i in diffelement1) # 2. 用第一个子列表索引1的元素,减去后续子列表同位置元素 base = l1[0][1] diffelement2 = [base - item[1] for item in l1[1:]] # 输出结果 print(diffelement1) print(diffelement2) print("所有差值是否为0:", is_all_zero)
运行输出
[0, 0, 0, 0] [5, 13, 10, 16] 所有差值是否为0: True
补充说明
- 如果需要校验全部5个子列表的索引0差值,把列表推导式遍历的对象
l1[1:]改为l1即可,得到的diffelement1长度为5,所有元素均为0 - 列表推导式执行效率高于普通for循环追加元素的写法,可读性也更高,适合此类简单序列运算场景
内容的提问来源于stack exchange,提问作者Chougo
相关产品推荐
相关产品推荐

