2017-08-10 274 views
1

我试图划分列表的每个元素,以查看列表中的数字是否返回偶数。我想要的是将list_accepted_ant中的偶数值附加到set_accepted_list。目前,当我打印该值时,所有值都附加到set_accepted_list。任何帮助将不胜感激。如何将整个列表中的每个元素除以常量

def DoIOpenTheDoor(list_ant_id): 
    list_accepted_ant = []      
    set_accepted_list = set() 
    set_forbidden_list = set() 
    set_list_ant_id = set(list_ant_id) 
    if len(list_accepted_ant) < num_accepted: 
     if len(list_ant_id) > 0: 
      list_accepted_ant.extend(list_ant_id[0:min(len(list_ant_id)) 
       if (all(x % 2 == 0 for x in list_accepted_ant)): 
        list_accepted_ant.append(list_accepted_ant) 
    set_accepted_list = set(list_accepted_ant) 
    print "the set of even accepted ant-",(set_accepted_list) 
    print "the list of all ants-",(list_ant_id)  
    set_forbidden_list = set_list_ant_id-set_accepted_list 
    return set_accepted_list,set_list_ant_id,set_forbidden_list 

这是我的输出,当我运行代码:

list_ant_id = [1082, 1091, 1055, 1057, 971, 977, 728, 740]

set_accepted_list = set([1057, 1091, 740, 971, 977, 728, 1082, 1055])

我预计set_accepted_list = set([740,728,1082])

基本上我想要的是保持偶数值从list_ant_id到set_accepted_list。

+2

您在'if len(list_ant_id)> 0:' – lmiguelvargasf

+1

'list_accepted_ant == 0'是一个布尔值,并且您正在尝试为'x in'做一个布尔值,因此有一个缩进错误您的错误 – depperm

回答

1

的问题是,您要比较的迭代x/2 for x in list_accepted_ant与多家0,所以更改:

([x/2 for x in list_accepted_ant ==0]): #for even number ants 

all(x % 2 == 0 for x in list_accepted_ant)) 

前行基本上是说为list_accepted_ant每个元素检查他们都是平均的。

+0

错误已解决,但我无法获得所需的结果。 – mudaliyar

+0

@imigyelvargasf。我编辑了这个问题并提供了输入和预期输出。 – mudaliyar

相关问题