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.

BCS
sumber
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.

David Z
sumber
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.

Abdul Mueed
sumber
1
Terima kasih atas pembaruannya. Untuk kelengkapan, Anda mungkin ingin menambahkan penggunaan garis bawah sebagai 'dummy' placeholder di tuple unpacking.
Emile