访问上一个lis的列表项

2024-10-01 02:25:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Python3.x中有一个列表:

deliveryData=[[1,5,3],[2,7,8],[8,10,5]]

我想比较/操作当前列表(例如[2,7,8])和上一个列表(例如[1,5,3])的各个项目。我该怎么做?你知道吗

使用下面的示例代码测试此功能:

deliveryData=[[1,5,3],[2,7,8],[8,10,5]]
for data in deliveryData[1:]:
    print(data)
    print(data[-1])

我在想,当我在列表[2,7,8]上时,我可以用data[-1]访问列表[1,5,3],但这是不对的。你知道吗

有人能给我提些建议吗?你知道吗


Tags: 项目代码in功能示例列表fordata
3条回答

只需访问i-1上一个列表,从i=1开始:

deliveryData=[[1,5,3],[2,7,8],[8,10,5]]

for i in range(1, len(deliveryData)):
    print("Current:", deliveryData[i])
    print("Previous:", deliveryData[i-1])

输出:

Current: [2, 7, 8]
Previous: [1, 5, 3]
Current: [8, 10, 5]
Previous: [2, 7, 8]

你就不能这样索引它:

deliveryData=[[1,5,3],[2,7,8],[8,10,5]]
for data in deliveryData[1:]:
    print(data)
    print(deliveryData[deliveryData.index(data)-1])

deliveryData[-1]将始终返回deliveryData中的最后一个元素。你知道吗

使用^{}而不是使用索引:

for p_data, c_data in zip(deliveryData, deliveryData[1:]):
    print(p_data, c_data)
    # [1, 5, 3] [2, 7, 8]
    # [2, 7, 8] [8, 10, 5]

与@RoadRunner的答案不同,这个在内存中创建一个额外的列表(保存deliveryData[1:])。这可能是一个问题,也可能不是。你知道吗

相关问题 更多 >