В чем разница между фигурной скобкой и квадратной скобкой в ​​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(). Но я не думаю, что на этот раз вам нужно будет беспокоиться.