Kurung kotak adalah daftar sementara tanda kurung adalah tupel .
Daftar bisa berubah, artinya Anda dapat mengubah isinya:
>>> x =[1,2]>>> x.append(3)>>> x
[1,2,3]
sedangkan tuple tidak:
>>> 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'
Perbedaan utama lainnya adalah bahwa tuple hashable, artinya Anda dapat menggunakannya sebagai kunci kamus, antara lain. Sebagai contoh:
>>> 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'
Perhatikan bahwa, seperti yang ditunjukkan oleh banyak orang, Anda dapat menambahkan tupel bersama-sama. Sebagai contoh:
>>> x =(1,2)>>> x +=(3,)>>> x
(1,2,3)
Namun, ini tidak berarti tuple bisa berubah . Dalam contoh di atas, tuple baru dibangun dengan menambahkan bersama dua tupel sebagai argumen. Tuple asli tidak dimodifikasi. Untuk menunjukkan ini, pertimbangkan hal berikut:
>>> x =(1,2)>>> y = x
>>> x +=(3,)>>> x
(1,2,3)>>> y
(1,2)
Sedangkan, jika Anda membangun contoh yang sama dengan daftar, yjuga akan diperbarui:
>>> x =[1,2]>>> y = x
>>> x +=[3]>>> x
[1,2,3]>>> y
[1,2,3]
contoh yang bagus namun sederhana untuk menuliskan perbedaan. Terima kasih!
Dr. Essen
8
Satu perbedaan yang menarik:
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)
Koma harus dimasukkan dalam tupel walaupun hanya berisi satu nilai. misalnya (1,)bukannya (1).
Terima kasih. Ini yang saya cari. Kode yang saya lihat memiliki (list1 + list2 + list3) dan mengembalikan daftar, bukan tuple.
HuckIt
4
Mereka bukan daftar, mereka daftar dan tupel. Anda dapat membaca tentang tupel di tutorial Python. Meskipun Anda dapat mengubah daftar, ini tidak dimungkinkan dengan tupel.
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
Tidak ada daftar yang terlampir oleh tanda kurung "bulat", itu adalah tupel! Tapi Anda mungkin bermaksud hal yang benar. :P
Gandaro
1
Daftar terlampir oleh (dan) adalah tupel .. Saya bingung, apakah daftar atau tupel?
juliomalegria
@ julio.alegria Saya pikir apa yang @FlopCoder dimaksudkan untuk menulis itu " Item tertutup oleh (dan )adalah tuples, yang tertutup oleh [dan ]merupakan lists."
(i for i in ...)
dan[i for i in ...]
.Jawaban:
Kurung kotak adalah daftar sementara tanda kurung adalah tupel .
Daftar bisa berubah, artinya Anda dapat mengubah isinya:
sedangkan tuple tidak:
Perbedaan utama lainnya adalah bahwa tuple hashable, artinya Anda dapat menggunakannya sebagai kunci kamus, antara lain. Sebagai contoh:
Perhatikan bahwa, seperti yang ditunjukkan oleh banyak orang, Anda dapat menambahkan tupel bersama-sama. Sebagai contoh:
Namun, ini tidak berarti tuple bisa berubah . Dalam contoh di atas, tuple baru dibangun dengan menambahkan bersama dua tupel sebagai argumen. Tuple asli tidak dimodifikasi. Untuk menunjukkan ini, pertimbangkan hal berikut:
Sedangkan, jika Anda membangun contoh yang sama dengan daftar,
y
juga akan diperbarui:sumber
Satu perbedaan yang menarik:
Koma harus dimasukkan dalam tupel walaupun hanya berisi satu nilai. misalnya
(1,)
bukannya(1)
.sumber
Mereka bukan daftar, mereka daftar dan tupel. Anda dapat membaca tentang tupel di tutorial Python. Meskipun Anda dapat mengubah daftar, ini tidak dimungkinkan dengan tupel.
sumber
Cara lain tanda kurung dan kurung berbeda adalah bahwa tanda kurung siku dapat menggambarkan pemahaman daftar, misalnya
[x for x in y]
Sedangkan sintaks kurung yang sesuai menentukan generator tuple :
(x for x in y)
Anda bisa mendapatkan pemahaman tuple menggunakan:
tuple(x for x in y)
Lihat: Mengapa tidak ada pemahaman tuple dalam Python?
sumber
Yang pertama adalah daftar, yang kedua adalah tupel. Daftar bisa berubah, tuple tidak.
Lihatlah bagian Struktur Data tutorial, dan bagian Jenis Urutan dokumentasi.
sumber
Dipisahkan koma item tertutup oleh
(
dan)
adalahtuple
s, yang tertutup oleh[
dan]
yanglist
s.sumber
:P
(
dan)
adalahtuple
s, yang tertutup oleh[
dan]
merupakanlist
s."