Mendapatkan satu nilai dari tuple


152

Apakah ada cara untuk mendapatkan satu nilai dari tuple di Python menggunakan ekspresi?

def tup():
  return (3, "hello")

i = 5 + tup()  # I want to add just the three

Saya tahu saya bisa melakukan ini:

(j, _) = tup()
i = 5 + j

Tapi itu akan menambah beberapa lusin baris ke fungsi saya, menggandakan panjangnya.


1
Itu _juga hanya variabel. Itu hanya sering digunakan untuk memberikan nilai padanya yang dapat dibuang. Namun secara teoritis Anda bisa mendapatkan nilai dari_
Info-Screen

Jawaban:


202

Kamu bisa menulis

i = 5 + tup()[0]

Tuples dapat diindeks seperti daftar.

Perbedaan utama antara tupel dan daftar adalah bahwa tupel tidak dapat diubah - Anda tidak dapat mengatur elemen tupel ke nilai yang berbeda, atau menambah atau menghapus elemen seperti yang Anda bisa dari daftar. Tetapi selain itu, dalam kebanyakan situasi, mereka bekerja hampir sama.


54

Bagi siapa pun di masa depan yang mencari jawaban, saya ingin memberikan jawaban yang lebih jelas untuk pertanyaan itu.

# for making a tuple
my_tuple = (89, 32)
my_tuple_with_more_values = (1, 2, 3, 4, 5, 6)

# to concatenate tuples
another_tuple = my_tuple + my_tuple_with_more_values
print(another_tuple)
# (89, 32, 1, 2, 3, 4, 5, 6)

# getting a value from a tuple is similar to a list
first_val = my_tuple[0]
second_val = my_tuple[1]

# if you have a function called my_tuple_fun that returns a tuple,
# you might want to do this
my_tuple_fun()[0]
my_tuple_fun()[1]

# or this
v1, v2 = my_tuple_fun()

Semoga ini menjelaskan lebih lanjut untuk mereka yang membutuhkannya.


1
Terima kasih atas pembaruannya. Untuk kelengkapan, Anda mungkin ingin menambahkan penggunaan garis bawah sebagai 'dummy' placeholder di tuple unpacking.
Emile
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.