Saya belajar Python dan membuat koneksi database. Ketika mencoba untuk menambahkan ke DB, saya berpikir untuk menciptakan tupel dari informasi dan kemudian menambahkan mereka ke DB.
Apa yang saya Lakukan: Saya mengambil informasi dari user dan menyimpannya dalam variabel. Apakah saya dapat menambahkan variabel-variabel tersebut ke dalam sebuah tuple? Bisakah anda membantu saya dengan sintaks?
Juga jika ada cara yang efisien untuk melakukan ini, silakan berbagi...
EDIT Biarkan aku edit pertanyaan ini sedikit...aku hanya perlu tupel untuk memasukkan informasi ke dalam DB. Setelah informasi ini ditambahkan ke DB, haruskah saya menghapus tuple? Maksudku, aku don't perlu tupel lagi.
Tupel yang berubah; anda dapat't perubahan variabel-variabel mana yang mengandung setelah konstruksi. Namun, anda dapat menggabungkan atau iris mereka dengan bentuk baru tupel:
a = (1, 2, 3)
b = a + (4, 5, 6)
c = b[1:]
Dan, tentu saja, membangun mereka dari nilai-nilai yang ada:
name = "Joe"
age = 40
location = "New York"
joe = (name, age, location)
Anda bisa mulai dengan tuple kosong dengan sesuatu seperti t = ()
. Anda dapat menambahkan dengan +
, tapi anda harus menambah tupel. Jika anda ingin menambahkan sebuah elemen tunggal, membuat singleton: t = t + (elemen)
. Anda dapat menambahkan sebuah tuple dari beberapa unsur dengan atau tanpa mengikuti koma.
>>> t = ()
>>> t = t + (1,)
>>> t
(1,)
>>> t = t + (2,)
>>> t
(1, 2)
>>> t = t + (3, 4, 5)
>>> t
(1, 2, 3, 4, 5)
>>> t = t + (6, 7, 8,)
>>> t
(1, 2, 3, 4, 5, 6, 7, 8)
Taktik lain yang belum disebutkan adalah menggunakan menambahkan ke daftar, dan kemudian mengkonversi daftar untuk sebuah tupel di akhir:
mylist = []
for x in range(5):
mylist.append(x)
mytuple = tuple(mylist)
print mytuple
kembali
(0, 1, 2, 3, 4)
Kadang-kadang saya gunakan ini ketika aku harus melewati sebuah tuple sebagai argumen fungsi, yang sering diperlukan untuk numpy fungsi.
Di Python 3, anda dapat menggunakan *
untuk membuat yang baru tupel dari unsur-unsur asli dari tuple bersama dengan elemen baru.
>>> tuple1 = ("foo", "bar")
>>> tuple2 = (*tuple1, "baz")
>>> tuple2
('foo', 'bar', 'baz')
" sekali info yang ditambahkan ke DB, haruskah saya menghapus tuple? maksudku, aku tidak perlu tupel lagi."
No.
Umumnya, ada's tidak ada alasan untuk menghapus apa-apa. Ada beberapa kasus khusus untuk menghapus, tapi mereka're sangat, sangat langka.
Hanya mendefinisikan lingkup yang sempit (yaitu, definisi fungsi atau fungsi metode dalam kelas) dan benda-benda yang akan menjadi sampah yang dikumpulkan di akhir ruang lingkup.
Don't khawatir tentang menghapus apa-apa.
[Catatan. Saya bekerja dengan orang yang -- selain mencoba untuk menghapus objek -- selalu menulis "reset" metode untuk membersihkan mereka. Seperti dia akan pergi untuk menyelamatkan mereka dan menggunakan kembali mereka. Juga konyol kesombongan. Hanya mengabaikan benda-benda yang anda're tidak lagi menggunakan. Jika anda mendefinisikan fungsi-fungsi kecil-cukup blok kode, anda memiliki apa-apa lagi untuk berpikir tentang.]
It's sebagai mudah sebagai berikut:
info_1 = "one piece of info"
info_2 = "another piece"
vars = (info_1, info_2)
# 'vars' is now a tuple with the values ("info_1", "info_2")
Namun, tupel dalam Python adalah immutable, sehingga anda tidak dapat menambahkan variabel untuk sebuah tupel setelah itu dibuat.
Sebagai jawaban lain yang harus dicatat, anda tidak dapat mengubah yang ada tupel, tetapi anda selalu dapat membuat yang baru tupel (yang mungkin mengambil beberapa atau semua item dari yang ada tupel dan/atau sumber-sumber lain).
Misalnya, jika semua barang-barang kepentingan dalam variabel skalar dan anda tahu nama-nama variabel tersebut:
def maketuple(variables, names):
return tuple(variables[n] for n in names)
untuk dapat digunakan, e.g, seperti dalam contoh ini:
def example():
x = 23
y = 45
z = 67
return maketuple(vars(), 'x y z'.split())
tentu saja hal yang satu ini akan menjadi lebih sederhana dinyatakan sebagai (x, y, z)
(atau bahkan atas nama-nama yang sama sekali, (23, 45, 67)
), tapi maketuple
pendekatan yang mungkin berguna dalam beberapa kasus yang lebih rumit (misalnya di mana nama-nama yang digunakan juga ditentukan secara dinamis dan ditambahkan ke daftar saat perhitungan).