2010-12-09 16 views
0

Wie könnte ich Arrays für Elemente in einer Liste so etwas wieWie kann ich die folgenden Arrays

list = ["a","b","c"] 
    for thing in list: 
    thing = [] 
+1

Was sollte das Ergebnis sein? Momentan sieht es so aus, als ob Sie jedes Element in 'liste' ersetzen wollen (Sie sollten ihm einen anderen Namen geben) mit einer leeren Liste:' [[], [], []] '. –

+0

id schließlich wie, a = [], b = [], c = [] – user428370

+0

@ user428370: Schreiben der einfachen Zuordnung Anweisungen scheint einfacher als herumalbern mit einer Schleife. Was ist der Sinn, das komplizierter zu machen? –

Antwort

2

Wenn Sie globale Arrays (Modulebene) bedeuten die Schaffung dann können Sie dies tun:

for thing in list: 
    globals()[thing] = [] 
+0

das ist genau das, was ich wollte, danke – user428370

0
x = dict ([(name, []) for name in ["a", "b", "c"]]) 

schaffen?

oder vielleicht

x = [[] for name in ["a", "b", "c"]] 
0

[list() for i in items]

[list() for i in range(len(items))]

Wenn Sie die aktuellen Elemente items in Listen wickeln, können Sie

tun

[[i] for i in items]

items wird für den Variablennamen verwendet, da list ein eingebauter ist.

3

Ich denke, die strenge Antwort auf das, was Sie fragen, ist:

for x in lst: 
    locals()[x] = [] 

localsglobals sein kann , je nachdem was du willst. Aber es ist normalerweise ratsam, ein Wörterbuch zu verwenden, um diese Werte zu halten (wie andere bereits vorgeschlagen haben).

[Bearbeiten] eine andere Art und Weise:

locals().update(dict.fromkeys(lst, [])) 
+0

Dieses Beispiel wie das obige ist das, was ich brauchte, danke – user428370

1
list = ["a","b","c"] 
for thing in list: 
    exec(thing+"=[]") 

ist es das, was Sie wollen?

+0

hatte keine Ahnung, es könnte so funktionieren, thx – user428370

Verwandte Themen