Jaka jest różnica między nawiasami kręconymi a nawiasami kwadratowymi w Pythonie?

Jaka jest różnica między nawiasem klamrowym a nawiasem kwadratowym w Pythonie?

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

Kiedy drukuję A i B na moim terminalu, nie robiły żadnej różnicy. Czy to prawda?

I czasami zauważyłem, że niektóre kody używają {} i [] do inicjalizacji różnych zmiennych.

E. g. A=[], B={}

Czy jest jakaś różnica?
Author: Martijn Pieters, 2014-03-14

3 answers

Nawiasy klamrowe tworzą słowniki lub zestawy. W nawiasach kwadratowych tworzy się listy .

Nazywa się je literałami; zbiór literałów:

aset = {'foo', 'bar'}

Lub dosłowny słownik:

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

Lub lista:

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

Aby utworzyć pusty zestaw, możesz użyć tylko set().

Zbiory są kolekcjami unikalnych elementów i nie można ich zamówić. Listy są uporządkowanymi sekwencjami elementów, a wartości mogą być powtarzane. Słowniki mapują Klucze do wartości, klucze muszą być unikalne. Klucze Set i dictionary muszą spełniać również inne ograniczenia, aby Python mógł je sprawnie śledzić i wiedzieć, że są i pozostaną unikalne.

Istnieje również tuple wpisz, używając przecinka dla 1 lub więcej elementów, przy czym nawiasy są opcjonalne w wielu kontekstach:

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

Zwróć uwagę na przecinek w definicji another_tuple; to ten przecinek czyni go tuple, a nie nawias. WARNING_not_a_tuple nie jest tuple, nie ma przecinka. Bez nawiasów pozostaje Ci tylko ciąg znaków.

Zobacz rozdział struktury danych w samouczku Pythona, aby uzyskać więcej szczegółów; listy są wprowadzane w rozdzialewprowadzenie .

Literały dla kontenerów takich jak te są również nazywane displays, a składnia pozwala na proceduralne tworzenie zawartości na podstawie pętli, zwanych comprehensions.

 74
Author: Martijn Pieters,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-14 18:03:51

Tworzą różne typy.

>>> type({})
<type 'dict'>
>>> type([])
<type 'list'>
>>> type({1, 2})
<type 'set'>
>>> type({1: 2})
<type 'dict'>
>>> type([1, 2])
<type 'list'>
 9
Author: Daenyth,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-13 21:37:44

Te dwa szelki są używane do różnych celów. Jeśli chcesz, aby lista zawierała pewne elementy i organizowała je według indeksów (zaczynając od 0), po prostu użyj [] i dodaj elementy w razie potrzeby. {[1] } są wyjątkowe, ponieważ można nadać niestandardowe id wartościom takim jak a = {"John": 14}. Teraz, zamiast robić listę z wiekami i pamiętać, czyj jest Wiek, możesz po prostu uzyskać dostęp do wieku Johna przez a["John"].

[] nazywa się listą, a {} słownikiem (w Pythonie). Słowniki są w zasadzie wygodną formą listy, która pozwala na dostęp do danych w znacznie łatwiejszy sposób.

Jest jednak pewien haczyk w słownikach. Wiele razy dane, które umieścisz w słowniku, nie pozostają w tej samej kolejności, co poprzednio. Dlatego, gdy przejdziesz przez każdą wartość jeden po drugim, nie będzie w oczekiwanej kolejności. Istnieje specjalny Słownik, aby to obejść, ale musisz dodać tę linię from collections import OrderedDict i zastąpić {} OrderedDict(). Ale nie musisz się tym martwić. na razie.
 0
Author: ytpillai,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-18 18:52:33