การใช้การทำความเข้าใจรายการอย่างทันท่วงทีใน Python สามารถทำให้การดำเนินการรายการซ้ำเป็นเรื่องง่ายสำหรับคุณ นอกจากจะเป็นบรรทัดเดียวแล้ว ยังอ่านง่ายกว่าและดำเนินการอย่างมีประสิทธิภาพอีกด้วย
อย่างไรก็ตาม คุณอาจจะต้องทำงานหนักขึ้นหากคุณไม่รู้วิธีใช้งาน อาจทำให้หงุดหงิดมากขึ้นหากคุณไม่ทราบว่าจะใช้โค้ดนี้ได้ที่ไหน ที่นี่ เราจะแสดงวิธีใช้ list comprehension ใน Python พร้อมตัวอย่างในชีวิตจริง
ความเข้าใจรายการใน Python คืออะไรและทำงานอย่างไร
การสร้างรายการด้วย Python เป็นเรื่องง่าย อย่างไรก็ตาม งานอาจกลายเป็นเรื่องน่าเบื่อเล็กน้อยเมื่อคุณต้องการสร้างรายการค่าหรือรายการจากการดำเนินการทางคณิตศาสตร์หรือสตริง นั่นคือเมื่อใช้การทำความเข้าใจรายการจะมีประโยชน์
ข้อดีของการใช้ list comprehension คือ คุณสามารถดำเนินการหลายอย่างในรายการเดียว
เล่นเกมออนไลน์กับเพื่อน ๆ บนคอมพิวเตอร์หลายเครื่อง
ในทางตรงกันข้าม มันสร้างรายการใหม่และผนวกเข้ากับรายการว่างที่ประกาศโดยอัตโนมัติ ดังนั้นแทนที่จะสร้างรายการว่างด้วยตนเองและต่อท้ายรายการด้วย a สำหรับ วนซ้ำ ความเข้าใจรายการของ Python ช่วยให้คุณทำสิ่งนี้ได้โดยอัตโนมัติโดยที่คุณไม่ต้องกังวลว่ารายการใหม่จะเข้ามาได้อย่างไร
คำว่า 'list comprehension' มาจากข้อเท็จจริงที่ว่าการดำเนินการทั้งหมดอยู่ในรายการ Python ที่กำหนดให้กับตัวแปรที่มีชื่อ ดังที่เราได้กล่าวไว้ก่อนหน้านี้ มันให้คุณดำเนินการเฉพาะในโค้ดบรรทัดเดียว จากนั้นผนวกผลลัพธ์เข้ากับรายการใหม่
ในท้ายที่สุด คุณยังสามารถใช้ผลลัพธ์ของความเข้าใจรายการเพื่อวัตถุประสงค์อื่นได้อีกด้วย นั่นเป็นเพราะมันซ้อนนิพจน์ในตัวแปรที่แยกจากกัน เพื่อให้คุณสามารถอ้างอิงได้ในภายหลัง
ตัวอย่างเช่น คุณอาจจะ ขูดเว็บไซต์ด้วย BeautifulSoup . สมมติว่าคุณต้องการรับชื่อรายการทั้งหมดและราคาจากเว็บไซต์
จากนั้นคุณตัดสินใจใส่ข้อมูลที่คัดลอกมาในไฟล์ CSV หรือ Excel แนวทางปฏิบัติที่ดีคือการขูดชื่อรายการทั้งหมดและราคา และจัดวางรายการทั้งสองในคอลัมน์แยกกัน อย่างไรก็ตาม การใช้การทำความเข้าใจรายการ ในกรณีนั้น ทำให้แน่ใจว่าคุณมีข้อมูลที่คัดลอกมาในตัวแปรเฉพาะ จากนั้นคุณสามารถแปลงตัวแปรดังกล่าวเป็น Python DataFrame ได้ในภายหลัง
ดูตัวอย่างด้านล่าง:
Products = [i.text for i in bs.find_all('name tags')]
Price = [i.text for i in bs.find_all('price tags')]
เมื่อคุณได้ตัวแปรแบบวนซ้ำแล้ว คุณสามารถใส่ตัวแปรเหล่านี้ในคอลัมน์แยกกันใน DataFrame โดยใช้ Pandas ของ Python
วิธีสร้างและใช้ความเข้าใจรายการใน Python
NS สำหรับ ลูปเป็นตัววนซ้ำที่จำเป็นในการทำความเข้าใจรายการ โดยทั่วไป ความเข้าใจรายการใน Python จะใช้รูปแบบนี้:
ComprehensionVariable = [expression for items in list]
การพิมพ์ ตัวแปรความเข้าใจ ผลลัพธ์ของรหัสข้างต้นเป็นรายการ
อย่างไรก็ตาม ระวังอย่าสับสนระหว่างความเข้าใจรายการกับการเปิดกว้าง สำหรับ ห่วง
ตัวอย่างเช่น ขอ ใช้ open for loop เพื่อรับรายการทวีคูณของสามทั้งหมดระหว่าง 1 ถึง 30:
myList = []
for i in range(1, 11):
myList.append(i * 3)
print(myList)
Output: [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
เพื่อเปรียบเทียบทั้งสอง ให้ทำสิ่งเดียวกันโดยใช้ความเข้าใจรายการ:
multiplesOf3 = [i*3 for i in range(1, 11)]
print(multiplesOf3)
Output = [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
คุณสามารถใช้ list comprehension กับ conditional statement ได้เช่นกัน โค้ดตัวอย่างด้านล่างพิมพ์ตัวเลขคี่ทั้งหมดระหว่าง 1 ถึง 10:
oddNumbers = [i for i in range(1, 11) if not i%2==2]
print(oddNumbers)
Output = [1, 3, 5, 7, 9]
ตอนนี้ เรามาเขียนโค้ดด้านบนใหม่โดยใช้ open . กัน สำหรับ ห่วง:
myList = []
for i in range(1, 11):
if not i%2 == 0:
myList.append(i)
print(myList)
Output: [1, 3, 5, 7, 9]
ที่เกี่ยวข้อง: วิธีผนวกรายการใน Python
ความเข้าใจรายการยังยอมรับคำสั่งซ้อนถ้า:
oddNumbers = [i for i in range(1, 11) if not i%2==0 if i<4]
print(oddNumbers)
Output: [1, 3]
นอกจากนี้ยังต้องใช้ซ้อนกัน สำหรับ ห่วง:
someNums = [[i*2 for i in range(1, 3)] for _ in range(4)]
print(someNums)
คุณยังสามารถมีรังแบบธรรมดาได้ สำหรับ วนซ้ำในการทำความเข้าใจรายการ:
someNums = [i*2 for i in range(1, 3) for k in range(4)]
คุณสามารถจัดการสตริงด้วยความเข้าใจรายการ Python ได้เช่นกัน มาดูความเข้าใจในการนับคำศัพท์ด้านล่างกัน:
word = ['This is a python list comprehension tutorial']
wordCounter = [i.count(' ') + 1 for i in word]
print(wordCounter)
Output: 7
ความเข้าใจรายการยังสามารถยอมรับฟังก์ชันที่ดำเนินการเฉพาะ มาแทรกฟังก์ชันตัวคูณที่ได้รับเลขคู่ในการทำความเข้าใจรายการเพื่อดูว่ามันทำงานอย่างไร:
Numbers = [4, 7, 8, 15, 17, 10]
def multiplier(n):
multiple = n*2
return multiple
multipleEven = [multiplier(i) for i in Numbers if i%2==0]
print(multipleEven)
Output: [8, 16, 20]
คุณยังสามารถเขียนโค้ดด้านบนในฟังก์ชันเดียวโดยไม่ต้องใช้ความเข้าใจ แต่การทำความเข้าใจรายการจะมีประโยชน์เมื่อคุณต้องทำซ้ำหลายครั้งและวางแต่ละรายการไว้ในตัวแปรที่แยกจากกัน
ตัวอย่างเช่น คุณสามารถดำเนินการอื่นบน NS และมีตัวแปรเฉพาะสำหรับมัน มาแก้ไขความเข้าใจด้านบนเพื่อสร้างเลขคู่จากเลขคี่:
multipleEvenFromOdds = [multiplier(i) for i in Numbers if not i%2==0]
print(multipleEvenFromOdds)
Output: [14, 30, 34]
พจนานุกรมและตั้งค่าความเข้าใจ
นอกจากการทำความเข้าใจรายการแล้ว Python ยังมีพจนานุกรมและฟังก์ชันการเข้าใจชุดอีกด้วย
ดูตัวอย่างความเข้าใจในพจนานุกรมด้านล่างเพื่อดูว่ามันทำงานอย่างไร:
corresponding = {i: i*2 for i in range(10) if not i%2==0}
print(corr)
Output: {1: 2, 3: 6, 5: 10, 7: 14, 9: 18}
โค้ดด้านบนจะวนซ้ำรายการตัวเลขระหว่าง 1 ถึง 9 และทำให้เป็นคีย์ จากนั้นบอกให้ Python คูณแต่ละคีย์ด้วยสอง สุดท้าย จะแสดงผลลัพธ์ของการดำเนินการนั้นเป็นค่าที่สอดคล้องกันสำหรับแต่ละคีย์ในอาร์เรย์ผลลัพธ์
ที่เกี่ยวข้อง: อาร์เรย์และรายการทำงานอย่างไรใน Python
ความเข้าใจชุดจะคล้ายกับความเข้าใจรายการ นี่คือตัวอย่างของชุดความเข้าใจ:
เชื่อมต่อ wii u gamepad กับพีซี
numbers = {i**(2) for i in range(10) if i%4==0}
print(numbers)
Output: {0, 16, 64}
อย่างไรก็ตาม ไม่เหมือน list comprehension set comprehension จะลบรายการที่ซ้ำกัน:
nums = {i for i in range(20) if i%2==1 for k in range(10) if k%2==1}
print(nums)
Output: {1, 3, 5, 7, 9, 11, 13, 15, 17, 19}
คุณสามารถลองใช้โค้ดด้านบนโดยใช้การทำความเข้าใจรายการเพื่อดูว่ามีความแตกต่างกันอย่างไร
คุณสามารถใช้ List Comprehension ทุกครั้งได้หรือไม่?
เราได้ดูตัวอย่างต่างๆ ของความเข้าใจรายการและที่ที่คุณสามารถใช้ได้ อย่างไรก็ตาม เช่นเดียวกับวิธี Python อื่นๆ กรณีการใช้งานของ list comprehension ขึ้นอยู่กับปัญหาเฉพาะที่คุณต้องการแก้ไข ดังนั้น คุณควรใช้เฉพาะเมื่อเหมาะสำหรับปัญหาเฉพาะที่คุณต้องการแก้ไขเท่านั้น
จุดประสงค์ประการหนึ่งของการทำความเข้าใจรายการคือการทำให้โค้ดของคุณง่ายขึ้นและทำให้อ่านง่ายขึ้น ดังนั้น อย่าลืมหลีกเลี่ยงความซับซ้อนเมื่อต้องรับมือกับมัน ตัวอย่างเช่น ความเข้าใจ Python ที่ยาวนานอาจกลายเป็นเรื่องซับซ้อนในการอ่าน ที่ขัดต่อจุดประสงค์ของมัน
แบ่งปัน แบ่งปัน ทวีต อีเมล วิธีการใช้ Python List Comprehensions (และเมื่อไม่ใช้)นี่คือทุกสิ่งที่คุณจำเป็นต้องรู้เกี่ยวกับการใช้คุณลักษณะที่น่าทึ่งของ Python ที่จะเพิ่มประสิทธิภาพการทำงานและความสามารถในการอ่านโค้ดของคุณในชั่วข้ามคืน
อ่านต่อไป หัวข้อที่เกี่ยวข้อง- การเขียนโปรแกรม
- Python
Idowu หลงใหลเกี่ยวกับเทคโนโลยีอัจฉริยะและประสิทธิภาพการทำงานทุกอย่าง ในเวลาว่าง เขาเล่นไปรอบๆ กับการเขียนโค้ดและเปลี่ยนไปเล่นกระดานหมากรุกเมื่อรู้สึกเบื่อ แต่เขาก็ชอบที่จะแยกตัวออกจากงานประจำบ้างเป็นบางครั้ง ความหลงใหลในการแสดงให้ผู้คนได้รู้จักเทคโนโลยีสมัยใหม่กระตุ้นให้เขาเขียนมากขึ้น
เพิ่มเติมจาก Idowu Omisolaสมัครรับจดหมายข่าวของเรา
เข้าร่วมจดหมายข่าวของเราสำหรับเคล็ดลับทางเทคนิค บทวิจารณ์ eBook ฟรี และดีลพิเศษ!
คลิกที่นี่เพื่อสมัครสมาชิก