2015-12-02 2 views
3

Чтение документации на Python и есть несколько способов создания словарей.dict (mapping, ** kwargs) vs dict (iterable, ** kwargs)

dict() 
dict(**kwargs) 
dict(mapping, **kwargs) 
dict(iterable, **kwargs) 

https://docs.python.org/2/library/stdtypes.html (5,8 типов карт)

я не понимаю разницы между mapping и iterable - документация гласит:

Если позиционный задан аргумент, и это отображение объект, словарь создается с теми же парами ключ-значение, что и объект сопоставления. В противном случае позиционный аргумент должен быть итерируемым объектом. Каждый элемент в iterable должен быть итерабельным с ровно двумя объектами.

Мне кажется, что mapping и iterable одно и то же здесь ... Можете ли вы помочь мне понять разницу?

+1

«Существует в настоящее время только один стандартный тип отображения, словарь. «Я думаю, что документация здесь довольно ясна (https://docs.python.org/2/library/stdtypes.html#mapping-types-dict) –

+0

@ Mr.E - Да, OP связал это в вопросе – TigerhawkT3

+0

@ TigerhawkT3 Случайно отправьте только ссылку: P. Исправлено это –

ответ

3

Я не понимаю разницу между отображением и итерацию

Отображение представляет собой набор пар ключ/значение, которые позволяют ключ доступа к значению - это «карты» ключи к значениям. Наиболее очевидным mapping встроенным типом является dict.

Итерируемый объект, который можно повторить, что в основном означает, что вы можете использовать его в инструкции for obj in iterable:. Сюда входят типы последовательностей (строки, списки и т. Д.), А также множество других (файлы, курсоры dbapi, генераторы и т. Д.), И, ну, тоже.

0

Давайте рассмотрим несколько примеров:

Dict()

a=dict() ---> {}

Dict (** kwargs)

a=dict(one=1, two=2, three=3) ---> {'one': 1, 'two': 2, 'three': 3}

ДИКТ (отображение, ** kwargs)

a=dict({'one':1, 'two':2, 'three':3}) ---> { 'один': 1, 'два': 2, 'три': 3}

a=dict({'one':1, 'two':2, 'three':3}, four=4,five=5,six=6) ---> {{ 'один': 1, 'два': 2, 'три': 3, 'четыре': 4 'пять': 5 'шесть': 6}

ДИКТ (итерация, ** kwarg)

a=dict([('one',1),('two',2),('three',3)]) ---> { 'один': 1, 'два': 2, 'три': 3}

a=dict((['one',1],['two',2],['three',3])) ---> { 'один': 1, 'два': 2, 'три': 3}

a=dict([('one',1),('two',2),('three',3)], four=4,five=5,six=6) ---> { 'один': 1, 'два': 2 «три ': 3,' four ': 4,' five ': 5,' six ': 6}

a=dict((['one',1],['two',2],['three',3]),four=4,five=5,six=6) ---> {' one ': 1,' two ': 2,' three ': 3 , 'четыре': 4 'пять': 5 'шесть': 6}


Примечание:

Вызов ДИКТ (итерацию, ** kwarg) функция равна --->

d={} 
a=[('one',1),('two',2),('three',3)] 
for k,v in a: 
    d[k]=v 

print(d) 

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