Skip to main content
 首页 » 编程设计

Python:如果列表元素的第一项发生变化,如何交替选择

2025年05月04日10落叶无声

我找不到解决这个简单问题的算法:

列表:

  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')