gpt4 book ai didi

python - 遍历列表列表并比较当前元素和最后一个元素

转载 作者:行者123 更新时间:2023-11-28 16:36:28 25 4
gpt4 key购买 nike

抱歉,如果这已经在另一个线程中涵盖。我对 Python 有点陌生(具体来说是 3),所以答案可能是针对概念上相似的问题,但我错过了相关性。

我循环遍历列表的列表,类似于以下内容:

biglist = [[a, b, x, d], [a, b, x, d], [a, b, y, d], [a, b, y, d], [a, b, z, d], [a, b, x, d]]

每当给定子列表中的第三个元素与前一个子列表中的第三个元素不同时,我想有条件地执行某些操作。在上面的示例中,这将发生在第三个子列表 (y != x)、第五个子列表 (z != y) 和第六个子列表 (x != z) 上。

每当出现这种不匹配时,我想修改当前子列表中相应的第一个元素。 (注意 - 我知道在遍历列表时通常不会更改列表,但我相信修改列表列表的其他元素是可以的[而不是添​​加或删除条目]。例如,在上述情况下,我希望循环产生以下改变的大列表:

biglist = [[a, b, x, d], [a, b, x, d], [new_a, b, y, d], [a, b, y, d], [new_a, b, z, d], [new_a, b, x, d]]

在花了几个小时研究索引并通读其他线程后,我仍然卡住了。非常感谢任何帮助。

最佳答案

下面的代码实现了你想要的结果:

biglist = [['a', 'b', 'x', 'd'],
['a', 'b', 'x', 'd'],
['a', 'b', 'y', 'd'],
['a', 'b', 'y', 'd'],
['a', 'b', 'z', 'd'],
['a', 'b', 'x', 'd']]

for i in range(len(biglist)):
if i > 0:
if biglist[i][2] != biglist[i-1][2]:
biglist[i][0] = 'new_' + biglist[i][0]

print(biglist)

使用 python 3.4.1

关于python - 遍历列表列表并比较当前元素和最后一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25612944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com