Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python List Comprehension และ Slicing?


ในส่วนนี้ เราจะมาทำความเข้าใจการแบ่งส่วนรายการหลามและความเข้าใจรายการ

การแบ่งรายการคืออะไร

ตามชื่อที่แนะนำ สไลซ์ หมายถึง – หั่นบางสิ่งเป็นชิ้นเล็กๆ (ชิ้น) การแบ่งส่วนรายการเป็นกระบวนการแยกส่วนของรายการออกจากรายการดั้งเดิม ในการแบ่งส่วนรายการ เราจะตัดรายการตามสิ่งที่เราต้องการ (เช่น ที่ที่จะเริ่ม หยุด และส่วนที่เพิ่มขึ้นที่จะแบ่งตาม)

การทำความเข้าใจรายการคืออะไร

ความเข้าใจรายการกำลังสร้างรายการตามรายการที่มีอยู่ เป็นวิธีที่หรูหราในการกำหนดและสร้างรายการใหม่ตามรายการที่มีอยู่

รายการสไลซ์

ในขณะที่เรากำลังจะแบ่งรายการ มาสร้างรายการกันก่อน

>>> mylist = ["Which ", "Language ", "To ", "Choose ", "Difficult, ", "Python ",
   "Java ", "Kotlin ", "Many more"]

รายการสามารถจัดทำดัชนีย้อนหลังได้ โดยเริ่มต้นที่ -1 (องค์ประกอบสุดท้าย) และเพิ่มขึ้น -1 ดังนั้น -1 จะเป็นองค์ประกอบสุดท้าย -2 จะเป็นองค์ประกอบสุดท้ายที่สอง

>>> mylist_slice1 = mylist[0: -1:2]
>>> mylist_slice1
['Which ', 'To ', 'Difficult, ', 'Java ']

เมื่อทำการสไลซ์รายการ เราต้องเรียกรายการของเราก่อน (mylist ในกรณีของเรา) ตามด้วยข้อกำหนดสำหรับการสไลซ์ของเรา ต้องอยู่ในวงเล็บ [] อาร์กิวเมนต์ที่เราอาจต้องส่งผ่านภายใน [] คือ −

  • อาร์กิวเมนต์แรก ดัชนีเพื่อเริ่มการแบ่งส่วน
  • อาร์กิวเมนต์ที่สอง ดัชนีเพื่อหยุดการแบ่งส่วน
  • อาร์กิวเมนต์ที่สาม ขั้นตอน/เพิ่มเพื่อแบ่งตาม (ตัวเลือก)

สุดท้ายก็จะออกมาประมาณนี้ −

mylist[START: STOP:STEP]
>>> mylist_slice2 = mylist[1:-1:2]
>>> mylist_slice2
['Language ', 'Choose ', 'Python ', 'Kotlin ']

รายการความเข้าใจ

อย่างที่คุณทราบตอนนี้ (จากด้านบน) ความเข้าใจรายการกำลังสร้างรายการใหม่จากรายการที่มีอยู่ ขั้นแรก เรามาสร้างรายการ (รายการดั้งเดิม) กันก่อน ฉันใช้ฟังก์ชัน range() เพื่อสร้างรายการตัวเลขชั่วคราวสำหรับความเข้าใจในรายการของเรา

>>> mylist1 = [x for x in range(0, 40)]
>>> mylist1
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
    27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39]
>>>
>>> mylist2 = [x for x in range(0,41) if x%2 == 0]
>>> mylist2
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40]

มาทำความเข้าใจกันว่าเกิดอะไรขึ้น ขั้นแรกเราจะสร้างตัวแปรชั่วคราวชื่อ “x” ตามด้วย for loop ที่วนซ้ำในช่วง 0 ถึง 40 ภายในวงเล็บ และเมื่อเรารันมัน มันจะสร้างรายการตัวเลขตั้งแต่ 0 ถึง 39 จากนั้นเราสร้างรายการอื่นและเพิ่มเงื่อนไขเข้าไป เงื่อนไขคือ “if x%2 ==0” หมายความว่าเรากำลังหาเลขคู่เท่านั้น

มาสร้างรายการอื่นโดยใช้สตริงเพื่อทำความเข้าใจรายการ

>>> strlist = ["This", "Is", "A" , "List" , "Of", "Strings", "For", "List", "Comprehension"]
>>> print([x.lower() for x in strlist])
['this', 'is', 'a', 'list', 'of', 'strings', 'for', 'list', 'comprehension']

ด้านบนเรามีรายการสตริง และเราใช้รายการตัวพิมพ์เล็กโดยใช้ความเข้าใจรายการ