【问题标题】:How to iterate over the list items in python based on some conditions?如何根据某些条件迭代python中的列表项?
【发布时间】:2020-04-27 05:19:05
【问题描述】:

如果满足某些条件,我正在尝试迭代 python 中的列表项。我在列表中有 5 个字符串,我想考虑第一个元素并检查我的情况。如果只有条件满足,那么我想去第二个元素等等。

mylist = ["1","2","34","44","55",]
for m in mylist:
    pyperclip.copy(m)
    print(m) # I want to print it every 30 seconds after the condition meets!
    roll = "34"
    if roll == m:
        print(roll) # Now wait for next m from the list!

解释:

假设,我从列表中取出 1,然后复制并打印它。现在在我从列表中打印另一个 m 之前,我必须等待条件。如果 roll 等于 m 则打印卷并等待直到打印下一个 m (即直到那 30 秒)。我想无限做,需要while循环吗?

请随意询问更多解释。

谢谢!

【问题讨论】:

  • 你可以使用time.sleep(30)
  • 您是否要继续滚动直到滚动匹配 m?
  • 我有两个问题:pyperclip 是什么,你想要无限循环是什么意思,你的mylist 不会结束吗?
  • @Tarique,我要查找 m,如果它与 roll 值匹配,则执行某些操作,否则等待列表中的下一个 m。
  • @KuldeepSinghSidhu,我的列表将结束,这就是我需要无限循环的原因,所以如果列表结束,请重新开始。

标签: python python-3.x list loops


【解决方案1】:

使用while 循环和% 无限次遍历列表

import time
mylist = ["1","2","34","44","55",]
i = 0
l = len(mylist)
while (True):
    m = mylist[i%l]
    # pyperclip.copy(m) # don't know what this is!?
    print(m) 
    roll = "34"
    if roll == m:
        print("printing roll: ",roll)
        time.sleep(30) # waiting 30 secs
    i+=1
1
2
34
printing roll:  34
44
55
1
2
34
printing roll:  34
44
55
1
2
34
printing roll:  34
44
55
1
2
34
........Infinite......

【讨论】:

  • 我也需要在那里试一试。此代码将打印所有列表项。我不想这样。仅在匹配时打印。我不知道,我怎样才能更好地解释它。
  • 尝试什么?您的查询也根据您的问题得到解决!
【解决方案2】:

您可以参考下面的代码,只需添加 time.sleep(secs)。 我想无限地做如果循环一个列表,循环到列表的末尾

import time
mylist = ["1","2","34","44","55",]
for m in mylist:
    pyperclip.copy(m)
    print(m) # I want to print it every 30 seconds after the condition meets!
    time.sleep(30)
    roll = "34"
    if roll == m:
        print(roll) # Now wait for next m from the list!

【讨论】:

  • 这只是一个伪代码,我认为我的问题没有很好地描述。让我再告诉你一次。如果列表项结束,我想重新开始。我想将每个列表项与滚动值匹配,如果相等,则打印滚动。如果不相等,则等待列表中的下一个 m,即 30 秒!
  • 如果 list[0] 匹配到滚动会发生什么?
  • 然后将打印滚动值。它应该等待 30 秒来查找 list[1] 值,依此类推。让我举个例子。
  • 列表中有 100 个字符串,例如“1”、“2”...现在,您每秒都会获得一些随机值,例如“2”、“23”...。现在您想要将这些值与第一个列表项进行比较。如果值和列表项相等,则做某事。否则等待 30 秒,然后检查列表中的第二项到这些值,依此类推。如果列表结束,请重新开始。因为这些值是随机的,并且可以更改。
猜你喜欢
  • 2016-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
  • 2021-12-21
  • 2018-09-09
相关资源
最近更新 更多