2013-05-30 2 views
0

Моего кода до сих пор читает из двух различных файлов CSV и печатает их:Как создать словарь из кортежа, который содержит списки целых чисел?

import itertools 

def Compare(file1, file2): 
    with open(file1+'.txt', 'r') as f1: 
     with open(file2+'.txt', 'r') as f2: 
      for line in itertools.product(f1, f2): 
       lines = [[int(col) for col in row.split()] for row in line] 
       print(lines), 

Результат выглядит следующим образом:

[[1, 2130, 164, 279, 90, 92, 193, 1], [1, 186, 164, 61, 110, 50, 74, 1]] 

Я хочу взять тот ИНТ значения из двух списков и поместить их в отдельно словарей, где один ключ имеет 5 различных значений, поэтому для примера:

dict1={'key':'value1''value2''value3''value4''value5', 'key2:...etc} 
dict2={'key':'value1''value2''value3''value4''value5', 'key2:...etc} 

где dict1 является [0] кортежа и dict2 - [1]. И значения1-5 являются значениями из каждого списка кортежей, поэтому dict1 будет содержать, например, values[0][0:4].

Я хочу, чтобы результат выглядел так:

dict={164:[1,279,90,92,193]} 
+1

Не могли бы вы привести пример того, для чего вам нужен ваш окончательный ответ, например, используя небольшой список, как вы писали выше. –

+0

Когда вы говорите 'tuple', вы имеете в виду' list'? – satoru

+1

примечание: вы можете поместить оба с инструкциями в 1 строку – wim

ответ

1
import itertools 

def Compare(file1, file2): 
    with open(file1+'.txt', 'r') as f1, open(file2+'.txt', 'r') as f2: 
     for line in itertools.product(f1, f2): # line equals tuple of (f1[0],f2[0]), (f1[0], f2[1]), etc. 
      # lines = [[int(col) for col in row.split()] for row in line] 
      # the tuple only contains 2 elements; first element should go to dict1, second to dict2. Why worry about that with list comprehensions? 
      dict1 = {'key': [int(col) for col in line[0].split() ]} 
      dict2 = {'key': [int(col) for col in line[1].split() ]} 
      print(dict1, dict2) 

За исключением: Что такое ключ, который вы используете? Вы ссылаетесь на 5 значений в каждой строке в каждом файле; но у вас есть 8.

+0

Почему он печатает каждую строку в количестве всех строк, которые у меня есть? в этом примере всего 65 строк, поэтому каждая конкретная строка повторяется 65 раз. – MaxPower

+0

Мой ключ должен быть элементом [2] из каждого списка, но я не могу получить к нему доступ как dict1 [2] – MaxPower

+0

Как я могу сделать ключевую строку [0] [2] для dict1 и строки [1] [2] для dict2? – MaxPower

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