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

标签 python list iteration alternate

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

列表:

  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/

相关文章:

java - 我的列表仅在微调器中显示前两项

java - 按对象的变量对对象的 LinkedList 进行排序

ruby - 遍历嵌套列表中的元素

c++ - 如何循环 multimap 以获得每个键的第一个键值对?

Python Pandas 工作日范围 bdate_range 不需要 1 分钟频率吗?

python - 在函数中使用颜色条

python - 在Python中使用map处理对象列表

java - 实例和迭代。哪一个更好?

python - 无法使用partitionByInstrument将文件分成多个部分

Python:生成 sudo 进程(在新终端中),等待完成