KeyError при отображении zip-объекта в словарь в python [duplicate]

Просто, чтобы дать общий ответ здесь обо всех трех API MYSQL со ссылкой:

Вы не можете смешивать ни одно из трех ( mysql_* , mysqli_* , PDO ) API MYSQL от PHP вместе, он просто не работает. Это даже в справочнике FAQ :

Невозможно смешать расширения. Например, передача mysqli в PDO_MySQL или ext / mysql не будет работать.

blockquote>

Вам нужно использовать тот же API MySQL и связанные с ним функции, от подключения к запросу .

8
задан jason 21 July 2013 в 22:41
поделиться

3 ответа

Вот как это работает в python 3.x. В python2.x, zip вернул список кортежей, но для python3.x, zip ведет себя как itertools.izip, вел себя в python2.x. Чтобы восстановить поведение python2.x, просто создайте список из вывода zip:

z = list(zip(t,t2))

Обратите внимание, что в python3.x многие встроенные функции теперь возвращают итераторы, а не списки ( map, zip, filter)

10
ответ дан mgilson 22 August 2018 в 00:25
поделиться
  • 1
    немного опоздал на вечеринку, но это просто заставило меня заглохнуть. Кажется сумасшедшим, что вы не можете вернуться к началу итератора, и просто использование zip имеет изменяемый эффект. Не легко понять, как Python верит ... – Neil Walker 12 April 2018 в 14:53
  • 2
    @NeilWalker - Возможно, нет, но есть много отличных преимуществ для ленивой итерации, в которой используются итераторы python (учитывайте любые типы данных, которые не доступны для поиска). Вы можете много обрабатывать с очень небольшими системными издержками по сравнению с «все есть список». перспективы мира. – mgilson 12 April 2018 в 17:33

Поскольку zip возвращает итератор в Python 3.x. Если вы хотите повторно использовать его, сделайте сначала list:

z = list(zip(t, t2))
7
ответ дан Jon Clements 22 August 2018 в 00:25
поделиться

zip возвращает итератор (в Python 3). Вы можете только перебирать итератор один раз. Итератор не исчезает, когда он не из элементов, но итерация по нему снова дает 0 элементов. Если вам нужен список, назовите list на нем:

z = list(zip(t, t2))
4
ответ дан user2357112 22 August 2018 в 00:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: