Python:在循环列表中查找上一个和下一个“True”元素

阿尔迪亚

True在循环列表中找到给定当前索引的前一个元素的最佳方法是什么

例如给出这样的数据

my_list = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
my_list_condition = [0, 0, 1, 1, 0, 1, 1]
  1. 查找上一个元素
before_e = find_prev('e', my_list, my_list_condition)
# before_e should be 'd'
before_c = find_prev('c', my_list, my_list_condition)
# before_c should be 'g' because it's circular list and the first True element before c is g
  1. 找到下一个元素
after_e = find_next('e', my_list, my_list_condition)
# after_e should output 'f'

after_g = find_next('g', my_list, my_list_condition)
# after_g should output 'c' because it's circular list and the first True element after c is g

您可以使用itertools.cycleAnditertools.compress来查找下一个元素,确保循环循环并且只循环需要的项目,但确保条件中的元素被保留,一旦完成,那么查找前一个只是反向查找下一个:

from itertools import cycle, compress

def find_next(c, lst, lst_condition):
    condition = lst_condition[:]
    condition[lst.index(c)] = 1
    elems = cycle(compress(lst, condition))
    for elem in elems:
        if elem == c:
            return next(elems)

def find_prev(c, lst, lst_condition):
    return find_next(c, list(reversed(lst)), list(reversed(lst_condition)))

测试:

my_list = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
my_list_condition = [0, 0, 1, 1, 0, 1, 1]

find_prev('e', my_list, my_list_condition) #d
find_prev('c', my_list, my_list_condition) #g

find_next('e', my_list, my_list_condition) # f
find_next('g', my_list, my_list_condition) #c

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

列表中的Python Compare元素与上一个和下一个

来自分类常见问题

mongodb-在聚合框架中查找上一个和下一个文档

来自分类Dev

mongodb-在聚合框架中查找上一个和下一个文档

来自分类Dev

Python-在列表中查找与条件匹配的下一个元素。替代上一个条目

来自分类Dev

Python-使用不同的条件查找列表中的下一个和上一个值

来自分类Dev

SQL查询以查找上一个日期,当前日期和下一个日期

来自分类Dev

循环中的上一个和下一个元素

来自分类Dev

使用下一个和上一个按钮循环遍历li元素

来自分类Dev

循环中的上一个和下一个元素

来自分类Dev

Jquery:从列表上具有特定类的元素中查找上一个元素

来自分类Dev

在js数组中查找下一个和上一个键

来自分类Dev

如何从日期变量中查找下一个和上一个日期

来自分类Dev

在Jekyll中循环上一个和下一个帖子

来自分类Dev

如何获取数组中的下一个和上一个元素,Ruby

来自分类Dev

抓取数组中的上一个和下一个元素

来自分类Dev

列表python的上一个和下一个项目

来自分类Dev

在MongoDB中排序后如何查找上一个/下一个文档

来自分类Dev

根据上一个和下一个元素将元素插入列表

来自分类Dev

如何使用Jquery each()方法遍历列表中的下一个/上一个3个元素

来自分类Dev

使用“下一个错误”和“上一个错误”循环显示结果

来自分类Dev

每个循环参考的VBA上一个和下一个项目

来自分类Dev

循环显示数组的下一个和上一个键

来自分类Dev

带有上一个和下一个按钮的循环显示

来自分类Dev

根据上一个和下一个值拆分和枚举 R 中的序列元素

来自分类Dev

依靠上一个和下一个元素进行流处理

来自分类Dev

获取json数组的下一个和上一个元素

来自分类Dev

下一个和上一个元素的CSS选择器

来自分类Dev

使用下一个和上一个按钮浏览列表

来自分类Dev

试图在 symfony 的 PHP 中获取 foreach 循环中的下一个和上一个项目?

Related 相关文章

  1. 1

    列表中的Python Compare元素与上一个和下一个

  2. 2

    mongodb-在聚合框架中查找上一个和下一个文档

  3. 3

    mongodb-在聚合框架中查找上一个和下一个文档

  4. 4

    Python-在列表中查找与条件匹配的下一个元素。替代上一个条目

  5. 5

    Python-使用不同的条件查找列表中的下一个和上一个值

  6. 6

    SQL查询以查找上一个日期,当前日期和下一个日期

  7. 7

    循环中的上一个和下一个元素

  8. 8

    使用下一个和上一个按钮循环遍历li元素

  9. 9

    循环中的上一个和下一个元素

  10. 10

    Jquery:从列表上具有特定类的元素中查找上一个元素

  11. 11

    在js数组中查找下一个和上一个键

  12. 12

    如何从日期变量中查找下一个和上一个日期

  13. 13

    在Jekyll中循环上一个和下一个帖子

  14. 14

    如何获取数组中的下一个和上一个元素,Ruby

  15. 15

    抓取数组中的上一个和下一个元素

  16. 16

    列表python的上一个和下一个项目

  17. 17

    在MongoDB中排序后如何查找上一个/下一个文档

  18. 18

    根据上一个和下一个元素将元素插入列表

  19. 19

    如何使用Jquery each()方法遍历列表中的下一个/上一个3个元素

  20. 20

    使用“下一个错误”和“上一个错误”循环显示结果

  21. 21

    每个循环参考的VBA上一个和下一个项目

  22. 22

    循环显示数组的下一个和上一个键

  23. 23

    带有上一个和下一个按钮的循环显示

  24. 24

    根据上一个和下一个值拆分和枚举 R 中的序列元素

  25. 25

    依靠上一个和下一个元素进行流处理

  26. 26

    获取json数组的下一个和上一个元素

  27. 27

    下一个和上一个元素的CSS选择器

  28. 28

    使用下一个和上一个按钮浏览列表

  29. 29

    试图在 symfony 的 PHP 中获取 foreach 循环中的下一个和上一个项目?

热门标签

归档