python - 如何比较列表列表中 2 个子列表元素的索引
问题描述
我想将子列表(索引 [0])中的第一个元素与它之前的子列表中的相同元素进行比较。如果不相等,我想将一个新元素附加到子列表中,该元素将为 0。如果它们相等,我想附加两个第二个元素之和的结果(例如:12+12 = 24)
我不知道如何在我在循环中检查的数据之前引用子列表中的数据以实现比较,因为我只是附加了一些 0。我很确定这是我引用前一个索引的方式是错误的.
list = [['1046', '10'], ['1047','12'], ['1047','12']]
for sublists in list:
if sublists[1] != sublists[1 - 1]:
sublists.append(0)
else:
velocity = float(sublists[2]) + float(sublists[2 - 1])
sublists.append(velocity)
结果列表是:
R_list = [['1046', '10', 0], ['1047', '12', 0], ['1047', '12', 0]]
虽然我想要:
R_list = [['1046', '10', 0], ['1047', '12', 0], ['1047', '12', 24]]
解决方案
您的索引通常不正确。尝试以下操作:
for i in range(1,len(R_list)):
if R_list[i][0]!=R_list[i-1][0]:
R_list[i].append(0)
else:
R_list[i].append(int(R_list[i][1])+int(R_list[i-1][1]))
为了
R_list = [['1046', '10', 0], ['1047', '12', 0], ['1047', '12', 0]]
以上给出:
[['1046', '10', 0], ['1047', '12', 0, 0], ['1047', '12', 0, 24]]
推荐阅读
- node.js - 如何让我的反应应用程序在 localhost:3000 中编译
- spring - 在 customReaderItem 中管理 I/O 和 POI 异常
- java - 为 playframework 创建自定义路由处理程序
- node.js - Socket.io - 他们的会话管理有多安全?
- raspberry-pi - 在 Raspberry Pi 4 上的 Docker Compose 中运行 Elastic Stack
- django - 有没有办法为 Django 缓存锁设置过期时间?
- c++ - 如何在 Google Test API 中运行 TEST 函数
- swift - 应用程序和模拟器上的错误未启动,Xcode 12.2
- r - 在 R 鼠标包中,我如何找到用于插补的树中的节点数?
- javascript - 群聊聊天应用的架构设计。我无法按时间顺序查询聊天室