繁体   English   中英

使用 For 循环迭代时从列表中删除项目

[英]Removing Items From List while iterating with For loop

我正在从数据库中提取值,并且列表中的变量采用以下形式:

my_list = [<task1>, <task2>, <task3>]

我想将它们添加到一个新变量中:

new_list = []

当我做:

for x in my_list:
    print(x.task_urgency)

我从列值“task_urgency”的所有三行中获取值

for x in my_list:
    if x.task_urgency == "New!":
        my_list.remove(x)
        new_list.append(x)

当我遍历时,由于索引系统在 for 循环中删除值的工作方式,它不会找到并删除所有值,但我需要它为 x 的该值删除某些 '...

我对 <> 中包含的值不熟悉,不知道如何实现这一点。

尝试:

my_list = [task for task in my_list if task.task_urgency != "New!"]

解决方案:

my_list = []
new_list = []
count = 0
for y in my_list:
    if y == "New!":
        count += 1
While True:
    if count > 0: 
        for x in my_list:
            if x.task_urgency == "New!":
                my_list.remove(x)
                new_list.append(x)
                break
     else:
         break

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM