2015-03-27 3 views
0

Я работаю над книгой по Python3 и линейной алгебре. Я пытаюсь взять строку с форматированием «name junk junk 1 1 1 1 1» и сделать словарь с именем в и цифрами, преобразованными из строк в int. т. е. {name: [1,1,1,1,1]} Но я не могу полностью вычислить цикл, так как я новичок в python. Вот мой код:Индексация цикла Python

string = 'Name junk junk -1 -1 1 1' 
for i, x in string.split(" "): 
     if i == 0: 
      a = x 
     if i > 2: 
      b = int(x) 

Запуск этого кода сетками следующее сообщение об ошибке:

Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
ValueError: too many values to unpack (expected 2) 

В идеале я бы также хотел, чтобы это было понимание. Но я, вероятно, смогу понять эту часть, если я смогу получить цикл.

+0

В Python, присвоения заявления (только), а не выражения. Я не уверен, что вы пытаетесь сделать с a и b, но может быть трудно превратить его в одно понимание, поскольку первый элемент понимания - это выражение. – Shashank

+0

Как насчет этого «мусорного мусора»? Просто хлам? –

ответ

5

Вы имели в виду использовать enumerate?

for i, x in enumerate(string.split(" ")): 
    # ... 

Использование списка понимание:

tokens = string.split() # Splits by whitespace by default, can drop " " 
result = {tokens[0]: [int(x) for x in tokens[3:]]} # {'Name': [-1, -1, 1, 1]} 
+0

Я никогда не думал об этом. Благодаря!! –

Смежные вопросы