Parênteses rectos são listas enquanto os parênteses são tuplas .
Uma lista é mutável, o que significa que você pode alterar seu conteúdo:
>>> x =[1,2]>>> x.append(3)>>> x
[1,2,3]
enquanto as tuplas não são:
>>> x =(1,2)>>> x
(1,2)>>> x.append(3)Traceback(most recent call last):File"<stdin>", line 1,in<module>AttributeError:'tuple' object has no attribute 'append'
A outra principal diferença é que uma tupla é lavável, o que significa que você pode usá-la como chave de um dicionário, entre outras coisas. Por exemplo:
>>> x =(1,2)>>> y =[1,2]>>> z ={}>>> z[x]=3>>> z
{(1,2):3}>>> z[y]=4Traceback(most recent call last):File"<stdin>", line 1,in<module>TypeError: unhashable type:'list'
Observe que, como muitas pessoas apontaram, você pode adicionar tuplas juntas. Por exemplo:
>>> x =(1,2)>>> x +=(3,)>>> x
(1,2,3)
No entanto, isso não significa que as tuplas são mutáveis . No exemplo acima, uma nova tupla é construída adicionando as duas tuplas como argumentos. A tupla original não é modificada. Para demonstrar isso, considere o seguinte:
>>> x =(1,2)>>> y = x
>>> x +=(3,)>>> x
(1,2,3)>>> y
(1,2)
Visto que, se você construísse esse mesmo exemplo com uma lista, ytambém seria atualizado:
>>> x =[1,2]>>> y = x
>>> x +=[3]>>> x
[1,2,3]>>> y
[1,2,3]
exemplos bons e simples para listar as diferenças. Obrigado!
Dr. Essen
8
Uma diferença interessante:
lst=[1]print lst // prints [1]print type(lst)// prints <type 'list'>
notATuple=(1)print notATuple // prints 1print type(notATuple)// prints <type 'int'>^^ instead of tuple(expected)
Uma vírgula deve ser incluída em uma tupla, mesmo que contenha apenas um único valor. por exemplo, em (1,)vez de (1).
Obrigado. Era isso que eu estava procurando. O código que vi tinha um (lista1 + lista2 + lista3) e retornou uma lista, não uma tupla.
HuckIt
4
Eles não são listas, são uma lista e uma tupla. Você pode ler sobre tuplas no tutorial do Python. Embora você possa alterar as listas, isso não é possível com as tuplas.
In[1]: x =(1,2)In[2]: x[0]=3---------------------------------------------------------------------------TypeErrorTraceback(most recent call last)/home/user/<ipython console>in<module>()TypeError:'tuple' object does not support item assignment
(i for i in ...)
e[i for i in ...]
.Respostas:
Parênteses rectos são listas enquanto os parênteses são tuplas .
Uma lista é mutável, o que significa que você pode alterar seu conteúdo:
enquanto as tuplas não são:
A outra principal diferença é que uma tupla é lavável, o que significa que você pode usá-la como chave de um dicionário, entre outras coisas. Por exemplo:
Observe que, como muitas pessoas apontaram, você pode adicionar tuplas juntas. Por exemplo:
No entanto, isso não significa que as tuplas são mutáveis . No exemplo acima, uma nova tupla é construída adicionando as duas tuplas como argumentos. A tupla original não é modificada. Para demonstrar isso, considere o seguinte:
Visto que, se você construísse esse mesmo exemplo com uma lista,
y
também seria atualizado:fonte
Uma diferença interessante:
Uma vírgula deve ser incluída em uma tupla, mesmo que contenha apenas um único valor. por exemplo, em
(1,)
vez de(1)
.fonte
Eles não são listas, são uma lista e uma tupla. Você pode ler sobre tuplas no tutorial do Python. Embora você possa alterar as listas, isso não é possível com as tuplas.
fonte
Outra maneira entre colchetes e parênteses é que colchetes podem descrever uma compreensão da lista, por exemplo,
[x for x in y]
Enquanto a sintaxe entre parênteses correspondente especifica um gerador de tupla :
(x for x in y)
Você pode obter uma compreensão da tupla usando:
tuple(x for x in y)
Veja: Por que não há compreensão de tupla no Python?
fonte
O primeiro é uma lista, o segundo é uma tupla. As listas são mutáveis, as tuplas não.
Dê uma olhada na seção Estruturas de dados do tutorial e na seção Tipos de sequência da documentação.
fonte
Itens separados por vírgula delimitados por
(
e)
sãotuple
s, aqueles delimitados por[
e]
sãolist
s.fonte
:P
(
e)
sãotuple
s, aqueles incluídos por[
e]
sãolist
s".