Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 14, 2014 18:04:33

lindsay
Зарегистрирован: 2014-11-05
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

dict(zip(list1,list2) возвращает словарь с длиной не равной list1 list2

сабж.
код:

def mimic_dict(filename):
  f = open(filename)
  k = []
  v = []
  d = {}
  for s in f:
      k += s.strip().split()
  klen = len(k)
  def init_lst(lst, cnt):
      while cnt > 0:
          lst.append([])
          cnt -= 1
      return lst
  d = dict(zip(k, init_lst(v, klen)))
  for w in k:
     nwi = k.index(w)+1
     if nwi != klen:
         d[w].append(k[nwi])
  return
где len(k) = len(v), что видно из функции initlst.
в частности их длина 29к+, а словарь выходит длиной 4950

Отредактировано lindsay (Ноя. 14, 2014 18:08:00)

Офлайн

#2 Ноя. 14, 2014 18:53:51

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

dict(zip(list1,list2) возвращает словарь с длиной не равной list1 list2

Это нормально

>>> dict([(1,2),(1,3),(1,4)])
{1: 4}
>>> 

Офлайн

#3 Ноя. 14, 2014 19:22:21

lindsay
Зарегистрирован: 2014-11-05
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

dict(zip(list1,list2) возвращает словарь с длиной не равной list1 list2

понятно, как это я сам не понял сразу.

Отредактировано lindsay (Ноя. 14, 2014 19:25:32)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version