2017-09-16 2 views
-1
def start(B): 
    wordlist = [] 

    for w in B: 
     content = w 
     words = content.lower().split() 
     for each_word in words: 

      wordlist.append(each_word) 
      print(each_word) 
      return(wordlist) 

Wenn ich die 'Wortliste' der Liste aufrufe, gibt sie zurück, dass sich in der Liste nichts befindet. Wie bekomme ich die Liste außerhalb der Funktion aufrufbar sein, da es innerhalb der Funktion funktioniert.Wie rufe ich eine Liste außerhalb einer Funktion in Python auf?

enter image description here

EDIT: Danke ich habe den Code aktualisiert, um den Fehler zu reflektieren ich machen wurde ein Druck-Tag statt einer Rückkehr-Tag.

+0

https://www.python-course.eu/global_vs_local_variables.php –

Antwort

4
def start(B): 
    wordlist = [] 

    for w in B: 
     content = w 
     words = content.lower().split() 
     for each_word in words: 

      wordlist.append(each_word) 
      print(each_word) 
      print(wordlist) 
    return wordlist 

B=["hello bye poop"] 
wordlist=start(B) 

Fügen Sie einfach return wordlist zur Funktion hinzu. Das Hinzufügen einer return-Anweisung in einer Funktion gibt das Objekt zurück, wenn die Funktion entsprechend aufgerufen wird, und Sie können die zurückgegebene Variable in einer globalen Bereichsvariablen speichern.

+0

Vielen Dank dafür. Ich fange gerade an, Python zu lernen, also wusste ich nicht, was zu tun war und die meisten anderen Fragen schienen viel komplexer zu sein und ich konnte nicht herausfinden, was ich vermisste, damit mein Code funktioniert. Also vielen Dank – user8620463

1

können Sie die Liste verwenden, die erste Funktion für die zweite Funktion als Argument erstellt:

def some_list_function(): 
    # generates list 
    return mylist 

def some_other_function(mylist): 
    # takes list as argument and processes 
    return result 

some_other_function(some_list_function()) 

Sie können dies als Referenz in der Zukunft verwenden.

+1

Vielen Dank dafür. Ich werde darauf in Zukunft verweisen. Ich bin aber neugierig, würde ich dann nicht beide Funktionen für jede Liste ausführen müssen, damit es funktioniert? Wäre das nicht mühsamer? – user8620463

+0

In einem größeren Maßstab wird es effizienter –

Verwandte Themen