我找不到解决这个简单问题的算法:
列表:
lista: [[1,a],[1,b],[1,a],[2,s],[2,r],[3,e],[3,k],[3,t],[3,y]....]
我正在遍历这个列表, 对于内部列表的第一项与下一个迭代相同的迭代,在 x 和 y 之间交替
[1,a] --> x
[1,b] --> x
[1,a] --> x
[2,s] --> y
[2,r] --> y
[3,e] --> x
[3,k] --> x
[3,t] --> x
[3,y] --> x
最佳答案
lista = [[1,'a'],[1,'b'],[1,'a'],[2,'s'],[2,'r'],[3,'e'],[3,'k'],[3,'t'],[3,'y']]
>>> last_a = None
>>> toggle = 'y'
>>> for a, b in lista:
... if last_a != a:
... toggle = 'x' if toggle != 'x' else 'y'
... last_a = a
... print(a, b, toggle)
...
(1, 'a', 'x')
(1, 'b', 'x')
(1, 'a', 'x')
(2, 's', 'y')
(2, 'r', 'y')
(3, 'e', 'x')
(3, 'k', 'x')
(3, 't', 'x')
(3, 'y', 'x')
关于Python:如果列表元素的第一项发生变化,如何交替选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14594478/