В чем разница между фигурной скобкой и квадратной скобкой в Python?
В чем разница между фигурной скобкой и квадратной скобкой в python?
A ={1,2}
B =[1,2]
когда я печатаю A
и B
на моем терминале, они не имеют никакого значения. Это реально?
И иногда я заметил, что какой-то код использует {}
и []
для инициализации разных переменных.
например. A=[]
, B={}
Есть ли там разница?
Ответы
Ответ 1
В фигурных скобках создаются словари или sets. Квадратные скобки создают списки.
Они называются литералами; набор литералов:
aset = {'foo', 'bar'}
или словарный литерал:
adict = {'foo': 42, 'bar': 81}
empty_dict = {}
или литерал списка:
alist = ['foo', 'bar', 'bar']
empty_list = []
Чтобы создать пустой набор, вы можете использовать только set()
.
Наборы представляют собой коллекции уникальных элементов, и вы не можете их заказать. Списки представляют собой упорядоченные последовательности элементов, и значения могут быть повторены. Словари сопоставляют ключи со значениями, ключи должны быть уникальными. Клавиши набора и словаря также должны соответствовать другим ограничениям, поэтому Python может эффективно отслеживать их и знать, что они есть и будут оставаться уникальными.
Существует также тип tuple
, используя запятую для 1 или более элементов, причем скобки являются необязательными во многих контекстах:
atuple = ('foo', 'bar')
another_tuple = 'spam',
empty_tuple = ()
WARNING_not_a_tuple = ('eggs')
Обратите внимание на запятую в определении another_tuple
; это запятая, которая делает ее tuple
, а не скобкой. WARNING_not_a_tuple
не является кортежем, он не имеет запятой. Без круглых скобок все, что у вас осталось, это строка.
Подробнее см. главу структуры данных учебника Python; списки представлены в главе .
Литералы для таких контейнеров также называются displays, и синтаксис позволяет запрограммировать создание содержимого на основе циклов, называемых пониманиями.
Ответ 2
Они создают разные типы.
>>> type({})
<type 'dict'>
>>> type([])
<type 'list'>
>>> type({1, 2})
<type 'set'>
>>> type({1: 2})
<type 'dict'>
>>> type([1, 2])
<type 'list'>
Ответ 3
Эти две фигурные скобки используются для разных целей. Если вы просто хотите, чтобы список содержал некоторые элементы и организовывал их по номерам индексов (начиная с 0), просто используйте []
и добавьте элементы по мере необходимости. {}
являются специальными в том, что вы можете предоставить пользовательский идентификатор таким значениям, как a = {"John": 14}
. Теперь вместо того, чтобы составлять список с возрастом и помнить, чей возраст есть, вы можете просто получить доступ к возрасту Джона на a["John"]
.
[]
называется списком, а {}
называется словарем (в Python). Словари - это в основном удобная форма списка, которая позволяет вам получить доступ к данным намного проще.
Однако в словарях есть улов. Во многих случаях данные, которые вы помещаете в словарь, не остаются в том же порядке, что и раньше. Следовательно, когда вы проходите каждое значение по одному, оно не будет в порядке, который вы ожидаете. Для этого есть специальный словарь, но вы должны добавить эту строку from collections import OrderedDict
и заменить {}
на OrderedDict()
. Но я не думаю, что на этот раз вам нужно будет беспокоиться.