В чем разница между фигурной скобкой и квадратной скобкой в Python?

в чем разница между фигурной скобкой и квадратной скобкой в python?

A ={1,2}
B =[1,2]

когда я печатаю A и B на моем терминале они не имели никакого значения. Это правда?

и иногда я заметил, что какой-то код использует {} и [] для инициализации различных переменных.

Е. Г. A=[], B={}

есть ли разница есть?

3 ответов


фигурные скобки создать словари или наборы. Квадратные скобки создать списки.

они называются литералы; набор литералов:

aset = {'foo', 'bar'}

или буквальный словарь:

adict = {'foo': 42, 'bar': 81}
empty_dict = {}

или список литералов:

alist = ['foo', 'bar', 'bar']
empty_list = []

чтобы создать пустой набор, Вы можете использовать только set().

наборы коллекций уникальный элементы и вы не можете заказать их. Списки-это упорядоченные последовательности элементов, и значения могут быть повторены. Словари сопоставляют ключи со значениями, ключи должны быть уникальными. Ключи Set и dictionary также должны соответствовать другим ограничениям, чтобы Python мог эффективно отслеживать их и знать, что они уникальны и останутся уникальными.

есть еще tuple тип, используя запятую для 1 или более элементов, с круглыми скобками, необязательными во многих контекстах:

atuple = ('foo', 'bar')
another_tuple = 'spam',
empty_tuple = ()
WARNING_not_a_tuple = ('eggs')

обратите внимание на запятую в another_tuple определение; именно эта запятая делает его tuple, а не скобочки. WARNING_not_a_tuple не Кортеж, в нем нет запятой. Без скобок все, что у вас осталось, - это строка.

посмотреть структура данных глава учебника Python для более подробной информации; списки представлены в введение глава.

литералы для таких контейнеров также называются выводит и синтаксис позволяет процедурное создание содержимого на основе цикла, называемого генераторы.


они создают разные типы.

>>> type({})
<type 'dict'>
>>> type([])
<type 'list'>
>>> type({1, 2})
<type 'set'>
>>> type({1: 2})
<type 'dict'>
>>> type([1, 2])
<type 'list'>

эти две скобки используются для разных целей. Если вы просто хотите, чтобы список содержал некоторые элементы и упорядочить их по номерам индекс (начиная с 0), просто использовать [] и добавить элементы по мере необходимости. {} являются особенными в том, что вы можете дать пользовательские идентификаторы для значений, таких как a = {"John": 14}. Теперь, вместо того, чтобы составлять список с возрастом и помнить, чей возраст где, вы можете просто получить доступ к возрасту Джона по a["John"].

на [] называется списком и {} называется словарь (в Python). Словари-это в основном удобная форма списка, которая позволяет получить доступ к данным намного проще.

тем не менее, есть уловка для словарей. Много раз данные, которые вы помещаете в словарь, не остаются в том же порядке, что и раньше. Следовательно, когда вы проходите каждое значение по одному, оно не будет в том порядке, в котором вы ожидаете. Существует специальный словарь, чтобы обойти это, но вы должны добавить эту строку from collections import OrderedDict и заменить {} С OrderedDict(). Но, я не думаю, что вам нужно будет беспокоиться об этом сейчас.