2015-10-01 2 views
-4

Я пытаюсь создать массив хэш в Python, но он не работаетсписок словаря не работает

data = ["long","short","fanouts"] 
app = [] 

for da in data: 
    app.append(app[name] = da) 

выход

File "test.py", line 5 
    app.append(app[name] = da) 
SyntaxError: keyword can't be an expression 

Пожалуйста, может кто-нибудь помочь мне с правильным кодом я творю новый Питону

+0

Что должен выглядеть результат? – Kevin

+0

Что вы хотите добавить в 'app' – The6thSense

+0

Почему не просто' app = data [:] '? – jonrsharpe

ответ

4

Когда вы пишете

abc(x=y) 

интерпретатор читает это как попытку вызвать функцию с аргументом ключевого слова. Поэтому чтение вашей линии

app.append(app[name] = da) 

он думает, что у вас есть аргумент ключевого слова app[name], который не имеет смысла в качестве ключевого слова аргумента.

Если вы хотите добавить в Dict в свой список, вы можете сделать это следующим образом:

app.append({name:da}) 

пока name и da являются существующие переменные.

-1

Зависит от того, что вы хотите, чтобы приложение [имя] было (предполагается, что приложение является dict). Либо

app[name].append(da) 

или

app.update(name=da) 
+0

Причина для downvote? – Veky

+0

Не я, а 'app' - это список в примере op. –

+0

Ну, это спорно, что приложение в примере оп, так как он не работает. :-) По крайней мере, мне не совсем понятно, что op предназначался для этого приложения. В противном случае, если вход и выход являются списками, куда идет dict? :-) – Veky

2

Попробуйте это:

data = ["long","short","fanouts"] 
app = [] 

for da in data: 
    app.append({name: da}) 
Смежные вопросы