2016-11-19 5 views
1

私はさまざまな方法でこれを試しましたが、これは1つです。 1つの関数でリストを定義するのが目的ですが、2番目の関数でそのリストを使用することはできません。次に、リスト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

関連する問題