>>> x=[1,2]
>>> x[1]
2
>>> x=(1,2)
>>> x[1]
2
Apakah keduanya valid? Apakah ada yang disukai karena alasan tertentu?
>>> x=[1,2]
>>> x[1]
2
>>> x=(1,2)
>>> x[1]
2
Apakah keduanya valid? Apakah ada yang disukai karena alasan tertentu?
Jawaban:
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] = 4
Traceback (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]
Satu perbedaan yang menarik:
lst=[1]
print lst // prints [1]
print type(lst) // prints <type 'list'>
notATuple=(1)
print notATuple // prints 1
print type(notATuple) // prints <type 'int'>
^^ instead of tuple(expected)
Koma harus dimasukkan dalam tupel walaupun hanya berisi satu nilai. misalnya (1,)bukannya (1).
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
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
/home/user/<ipython console> in <module>()
TypeError: 'tuple' object does not support item assignment
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)
Yang pertama adalah daftar, yang kedua adalah tupel. Daftar bisa berubah, tuple tidak.
Lihatlah bagian Struktur Data tutorial, dan bagian Jenis Urutan dokumentasi.
Dipisahkan koma item tertutup oleh (dan )adalah tuples, yang tertutup oleh [dan ]yang lists.
:P
(dan )adalah tuples, yang tertutup oleh [dan ]merupakan lists."
(i for i in ...)dan[i for i in ...].