2016-11-19 64 views
1

我已经尝试了一堆不同的方式,这是一个。但想法是在一个函数中定义一个列表,但我不能让它在第二个函数中使用列表。然后,我也必须在列表2中的偶数。函数和列表

def main(): 
    print (list1()) 
    print() 
    print (list2()) 
def list1(): 
    list1 = [] 
    for i in range (100): 
     list1.append(random.randint(2, 25)) 
    return list1 

def list2(): 
    i = 0 
    list2 = [] 
    for i in list1(): 
     if (i % 2 == 0): 
      list2.append(i) 

    return list2 
+0

是@falsetru是对的。将变量传递给函数而不是依赖全局名称空间更安全。这是最好的功能。否则,你将不得不在'list2()'中使用'global list1',这通常是一个坏主意。 – pylang

回答

2

如何声明参数;保存返回值list1()并将其作为参数传递给list2(..)

def main(): 
    lst1 = list1() 
    lst2 = list2(lst1) 
    print(lst1) 
    print() 
    print(lst2) 

def list1(): 
    list1 = [] 
    for i in range (100): 
     list1.append(random.randint(2, 25)) 
    return list1 

def list2(lst1): # accept a parameter. 
    i = 0 
    list2 = [] 
    for i in lst1: # use the parameter, instead of calling list2() 
     if i % 2 == 0: 
      list2.append(i) 

    return list2 
+0

我觉得这很明显!但凌晨2点没有任何意义。非常感谢您的帮助。 – zmorris