รับค่าหนึ่งค่าจาก tuple


152

มีวิธีรับค่าหนึ่งจาก tuple ใน Python โดยใช้การแสดงออก?

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

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

ฉันรู้ว่าฉันสามารถทำสิ่งนี้:

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

แต่นั่นจะเพิ่มสองสามบรรทัดลงในฟังก์ชันของฉันเพิ่มความยาวเป็นสองเท่า


1
นี่_เป็นเพียงตัวแปร มันมักจะใช้เพื่อกำหนดค่าให้กับมันที่สามารถทิ้ง แต่ในทางทฤษฎีคุณสามารถรับค่าได้จาก_
Info-Screen

คำตอบ:


202

คุณสามารถเขียน

i = 5 + tup()[0]

สิ่งอันดับสามารถจัดทำดัชนีเช่นเดียวกับรายการ

ความแตกต่างที่สำคัญระหว่างสิ่งอันดับและรายการคือสิ่งอันดับที่ไม่เปลี่ยนรูป - คุณไม่สามารถตั้งค่าองค์ประกอบของสิ่งอันดับเป็นค่าที่แตกต่างกันหรือเพิ่มหรือลบองค์ประกอบอย่างที่คุณสามารถทำได้จากรายการ แต่นอกเหนือจากนั้นในสถานการณ์ส่วนใหญ่พวกเขาทำงานเหมือนกันมาก


54

สำหรับใครที่กำลังมองหาคำตอบในอนาคตฉันอยากจะให้คำตอบที่ชัดเจนมากขึ้นสำหรับคำถาม

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

หวังว่าสิ่งนี้จะช่วยกำจัดสิ่งที่จำเป็นสำหรับผู้ที่ต้องการ


1
ขอบคุณสำหรับการอัพเดท. เพื่อความสมบูรณ์คุณอาจต้องการเพิ่มการใช้ขีดเส้นใต้เป็นตัวยึดตำแหน่ง 'จำลอง' ในการคลายการบีบอัด
Emile
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.