2015-02-25 3 views
1

Я новичок на этом сайте и на python. Мне нужна помощь с моим кодом. Таким образом, в основном у меня есть текстовый файл, а текст выглядит следующим образомКак сделать словарь со значениями как кортежи?

Achernar     140  0.46 
Acrux-AB     325  0.8 
Adhara      405  1.5 

Я пытаюсь сделать это в словарь. Если имя - это ключ, а цифры - значения. Но значения должны быть кортежами, и я не знаю, как это сделать. Я пробовал несколько вещей, и я думаю, что это самое близкое, что я собираюсь получить, но он все еще не работает. Я получаю "ValueError: слишком много значений для распаковки (ожидается 3)"

def starSetup(): 
    dictStar= {} 
    with open('file.txt','r') as i: 
     for line in i: 
      key, val, val2 = line.strip() 
      dictStar[key].append(val,val2) 
     print (dictStar) 
+0

Что случилось с 'dictStar [ключ] = (VAL, val2)'? –

+0

@LeeDanielCrocker: он, вероятно, даже не сделает это на этой линии из-за отсутствия 'split'. – DSM

ответ

3

Оно должно быть следующим:

key, val, val2 = line.strip().split() # forgot about split 
dictStar[key] = (val,val2) # no need for append. 
+0

Вам не нужно «.strip» перед тем, как вы '.split' как' .split', без аргументов разделите его по умолчанию. '' foo bar baz '.split() '->' [' foo ',' bar ',' baz '] ' – mgilson

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