ใน Python คุณสามารถมีตัววนซ้ำหลายตัวในรายการความเข้าใจเช่น
[(x,y) for x in a for y in b]
สำหรับบางลำดับที่เหมาะสม a และ b ฉันตระหนักถึงความหมายของลูปซ้อนกันของความเข้าใจในรายการของไพ ธ อน
คำถามของฉันคือ: ตัววนซ้ำหนึ่งตัวในความเข้าใจสามารถอ้างถึงตัวอื่นได้หรือไม่? กล่าวอีกนัยหนึ่ง: ฉันขอสิ่งนี้ได้ไหม:
[x for x in a for a in b]
ที่ค่าปัจจุบันของลูปด้านนอกเป็นตัววนซ้ำของ Inner?
ตัวอย่างเช่นถ้าฉันมีรายการซ้อนอยู่:
a=[[1,2],[3,4]]
การแสดงออกของรายการความเข้าใจจะเป็นอย่างไรเพื่อให้ได้ผลลัพธ์นี้:
[1,2,3,4]
?? (โปรดระบุเฉพาะคำตอบความเข้าใจเนื่องจากนี่คือสิ่งที่ฉันต้องการค้นหา)
[x for b in a for x in b]
สิ่งนี้มีข้อบกพร่องเสมอเกี่ยวกับหลาม ไวยากรณ์นี้ย้อนกลับได้ รูปแบบทั่วไปของx for x in y
เสมอมีตัวแปรโดยตรงหลังจาก for, ฟีดไปยังการแสดงออกทางด้านซ้ายของสำหรับ ทันทีที่คุณทำความเข้าใจสองครั้งตัวแปรที่วนซ้ำล่าสุดของคุณก็จะ "ไกล" ทันที มันอึดอัดใจและไม่อ่านตามธรรมชาติเลย