Bir demetten bir değer elde etme


152

İfadeleri kullanarak Python'daki bir demetten bir değer almanın bir yolu var mı?

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

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

Bunu yapabileceğimi biliyorum:

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

Ama bu benim işlevime uzunluğunu iki katına çıkaracak birkaç düzine satır ekleyecekti.


1
_Ayrıca sadece bir değişkendir. Genellikle atılabilecek bir değer atamak için kullanılır. Ama teorik olarak değeri alabilirsiniz_
Info-Screen

Yanıtlar:


202

Yazabilirsin

i = 5 + tup()[0]

Tüpler tıpkı listeler gibi dizine eklenebilir.

Tuples ve listeler arasındaki ana fark, tupleslerin değiştirilemez olmasıdır - bir tuple öğesinin öğelerini farklı değerlere ayarlayamaz veya listeye yapabildiğiniz gibi öğeleri ekleyemez veya kaldıramazsınız. Ancak bunun dışında, çoğu durumda hemen hemen aynı şekilde çalışırlar.


54

Gelecekte bir cevap arayan herkes için, soruya çok daha net bir cevap vermek istiyorum.

# 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()

Umarım bu ihtiyaç duyanlar için işleri daha da temizler.


1
Güncelleme için teşekkürler. Tamlık için, altçizginin demet açmada 'kukla' yer tutucu olarak kullanımını isteyebilirsiniz.
Emile
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.