ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง
ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง
การทำงานกับรายการและวัตถุที่ทำซ้ำ ได้เป็นงานทั่วไปในการเขียนโปรแกรม Python ในบางครั้ง คุณอาจต้องวนซ้ำการวนซ้ำเหล่านี้ในขณะที่ติดตามดัชนีหรือจำนวนองค์ประกอบปัจจุบันไปด้วย นั่นคือสิ่งที่ฟังก์ชัน enumerate() ในตัวของ Python เข้ามาช่วยเหลือ
ฟังก์ชัน enumerate() ใน Python ช่วยให้คุณเข้าถึงทั้งดัชนีของรายการและตัวรายการได้อย่างสะดวกสบายเมื่อคุณวนซ้ำรายการหรือวัตถุที่วนซ้ำได้
ฟังก์ชันนี้ทำให้โค้ดของคุณเป็นแบบ Pythonicอ่านง่าย และมีประสิทธิภาพมากขึ้น ช่วยให้คุณสามารถวนซ้ำองค์ประกอบและดึงทั้งดัชนีและค่า แทนที่จะเริ่มต้นและเพิ่มตัวนับภายในลูปด้วยตนเอง คุณสามารถพึ่งพา enumerate() เพื่อทำงานให้คุณ
ในบทความนี้ คุณจะได้เรียนรู้เกี่ยวกับฟังก์ชันในตัวของ Python ฟังก์ชัน enumerate() ความสำคัญใน โค้ด Pythonและกรณีการใช้งาน
เข้าเรื่องกันเลย!
สารบัญ
Python Enumerate Function คืออะไร?
ลองนึกภาพว่าคุณกำลังทำงานกับโครงสร้างข้อมูลรายการ และคุณต้องการทำบางอย่างกับแต่ละรายการ แต่คุณต้องทราบตำแหน่งของข้อมูลในรายการด้วย
หากไม่มี Python enumerate() คุณอาจตัดสินใจใช้ตัวแปรตัวนับที่คุณเพิ่มในทุกการวนซ้ำ แต่แนวทางนี้อาจเกิดข้อผิดพลาดได้ง่ายและไม่ใช่ "Pythonic" มากนัก
Enumerate เป็นฟังก์ชันในตัวใน Python ที่ช่วยให้คุณสามารถวนซ้ำวัตถุที่วนซ้ำได้ในขณะที่ติดตามดัชนีของรายการปัจจุบัน
ตอนนี้คุณเข้าใจแล้วว่าฟังก์ชัน enumerate() ใน Python คืออะไร เรามาต่อกันที่ไวยากรณ์ของฟังก์ชัน Python enumerate() ในหัวข้อถัดไป!
ไวยากรณ์ของ Python Enumerate Function คืออะไร?
ไวยากรณ์ของฟังก์ชันจะกำหนดวิธีที่คุณควรใช้ฟังก์ชันนั้นในโค้ด รวมถึงอาร์กิวเมนต์ที่ใช้และค่าที่ส่งคืน
ฟังก์ชัน enumerate ()ใช้ไวยากรณ์ต่อไปนี้:
enumerate(, start=0)
: นี่เป็นพารามิเตอร์ที่จำเป็นและสามารถทำซ้ำ Python ใดๆ ก็ได้ เช่น รายการหรือทูเพิล
start : พารามิเตอร์ที่สองนี้เป็นพารามิเตอร์ทางเลือกที่ระบุค่าเริ่มต้นของตัวนับ โดยค่าเริ่มต้น จะถูกตั้งค่าเป็น 0
ค่าส่งกลับของ ฟังก์ชันenumerate()เป็นอ็อบเจกต์แจกแจง ซึ่งเป็นตัววนซ้ำที่มีคู่ของ(ดัชนี องค์ประกอบ)สำหรับแต่ละรายการในการวนซ้ำที่กำหนด
คุณสามารถใช้ iterator นี้ในการวนซ้ำเพื่อเข้าถึงทั้งดัชนีและรายการพร้อมกัน
ตัวอย่างต่อไปนี้แสดงวิธีการใช้ ฟังก์ชัน enumerate()กับรายการ:
fruits = ['apple', 'banana', 'cherry']
for index, item in enumerate(fruits):
print(index, item)
ในตัวอย่างนี้enumerate()วนซ้ำวัตถุแจกแจง เช่น รายการ ผลไม้และกำหนดดัชนีให้กับแต่ละรายการ โดยเริ่มจาก 0
จาก นั้นfor loop จะแยกดัชนีและรายการออกจากวัตถุที่แจกแจง สิ่งนี้ทำให้คุณสามารถดำเนินการตามทั้งดัชนีและมูลค่าของรายการ
เรากำลังใช้ฟังก์ชันการพิมพ์เพื่อพิมพ์ดัชนีและรายการไปยังหน้าจอ ผลลัพธ์ของโค้ดจะแสดงในภาพด้านล่าง:
ในเอาต์พุต คุณจะเห็นว่าดัชนีเริ่มต้นคือ 0 ซึ่งเป็นค่าเริ่มต้นของดัชนีที่กำหนดโดยล่าม Python โดยอัตโนมัติ
อย่างไรก็ตาม คุณยังสามารถระบุค่าเริ่มต้นที่แตกต่างกันสำหรับตัวนับได้โดยระบุ พารามิเตอร์ เริ่มต้น ที่เป็นทางเลือก ตามที่แสดงในรหัสด้านล่าง:
for index, item in enumerate(fruits, start=1):
print(index, item)
ผลลัพธ์จะคล้ายกับด้านบน ข้อแตกต่างเพียงอย่างเดียวคือตอนนี้ดัชนีเริ่มต้นที่ 1
ตอนนี้คุณก็เข้าใจไวยากรณ์ของฟังก์ชัน enumerate() ใน Python แล้ว แต่เช่นเดียวกับเครื่องมืออื่นๆ สิ่งสำคัญคือต้องรู้ว่าจะใช้เมื่อใดและที่ไหน
นั่นเป็นเหตุผลที่เราจะสำรวจกรณีการใช้งานทั่วไปสำหรับฟังก์ชัน enumerate() ในหัวข้อถัดไป!
5 กรณีการใช้งานของ Python Enumerate Function
ฟังก์ชันแจงนับใน Python ถูกใช้อย่างกว้างขวางในสถานการณ์ที่ทั้งดัชนีและค่าของวัตถุที่ทำซ้ำได้มีความสำคัญต่อโปรแกรมเมอร์
เราได้แสดงรายการกรณีการใช้งานทั่วไปสำหรับฟังก์ชันระบุรายการใน Python ด้านล่าง
1. วิธีใช้ Enumerate กับ Python Lists
ใน Python รายการคือโครงสร้างข้อมูลในตัวที่ให้คุณจัดเก็บหลายรายการในตัวแปรเดียว คิดว่ารายการเป็นคอนเทนเนอร์ที่คุณสามารถใส่รายการต่างๆ และรายการจะรักษาลำดับไว้
ฟังก์ชัน enumerate() สามารถใช้กับรายการได้หลายวิธี เช่น:
A. การเข้าถึงองค์ประกอบรายการและดัชนีด้วย Python Enumerate
หนึ่งในกรณีการใช้งานที่พบบ่อยที่สุดสำหรับ enumerate() คือเมื่อคุณต้องการเข้าถึงทั้งองค์ประกอบของรายการและดัชนี การแจกแจงช่วยให้คุณทำสิ่งนี้ได้อย่างสะอาดและมีประสิทธิภาพ
ต่อไปนี้คือตัวอย่างการเข้าถึงองค์ประกอบของรายการและดัชนี:
fruits = ['apple', 'banana', 'mango', 'grape', 'orange']
for index, fruit in enumerate(fruits):
print(f"At index {index}, the fruit is {fruit}.")
ผลลัพธ์ของรหัสนี้ได้รับในภาพด้านล่าง:
B. แก้ไของค์ประกอบรายการด้วย Python Enumerate
เมื่อคุณต้องการแก้ไของค์ประกอบของรายการตามดัชนี enumerate() เป็นเครื่องมือที่ยอดเยี่ยม คุณสามารถเข้าถึงดัชนีภายในลูปและใช้เพื่อแก้ไขรายการ
ต่อไปนี้คือตัวอย่างการแก้ไของค์ประกอบรายการด้วยฟังก์ชันแจงนับ:
numbers = [1, 2, 3, 4, 5]
for i, num in enumerate(numbers):
numbers[i] = num * 2
โค้ด Python นี้สร้างรายการตัวเลขตั้งแต่ 1 ถึง 5 จากนั้นจะใช้ for loop และฟังก์ชัน enumerate() เพื่อวนซ้ำรายการ
สำหรับการวนซ้ำแต่ละครั้ง จะคูณจำนวนปัจจุบัน (num) ด้วย 2 และกำหนดใหม่ให้เป็นตำแหน่งเดียวกันในรายการ (numbers[i])
ผลลัพธ์คือทุกหมายเลขในรายการเดิมจะเพิ่มเป็นสองเท่าดังที่แสดงในภาพด้านล่าง:
C. การเปรียบเทียบองค์ประกอบในสองรายการด้วย Python Enumerate
หากคุณกำลังเปรียบเทียบองค์ประกอบในสองรายการที่แตกต่างกัน enumerate() สามารถระบุดัชนีที่คุณต้องการเพื่อเข้าถึงองค์ประกอบในทั้งสองรายการพร้อมกันได้
ต่อไปนี้คือตัวอย่างการใช้ฟังก์ชันแจงนับเพื่อเปรียบเทียบองค์ประกอบในสองรายการ:
list1 = [1, 2, 3, 4, 5]
list2 = [1, 2, 3, 0, 5]
for i, value in enumerate(list1):
if value != list2[i]:
print(f"Difference at index {i}: {value} (list1) vs {list2[i]} (list2)")
ในโค้ดนี้ อันดับแรกเราจะกำหนดสองรายการคือ list1 และ list2 จากนั้น เราวนซ้ำผ่าน list1 โดยใช้ for วนซ้ำกับ enumerate() ซึ่งให้ดัชนี (i) และค่าของแต่ละรายการ
หากรายการปัจจุบันใน list1 ไม่ตรงกับรายการที่เกี่ยวข้องใน list2 รายการนั้นจะพิมพ์ดัชนีของความแตกต่างและค่าที่ต่างกันจากทั้งสองรายการ
ผลลัพธ์ของรหัสนี้แสดงไว้ด้านล่าง:
2. วิธีการใช้ Enumerate กับ Python Tuples
ทูเพิลใน Python เป็นชุดขององค์ประกอบที่เรียงลำดับ คล้ายกับรายการ ข้อแตกต่างเพียงอย่างเดียวคือทูเพิลไม่เปลี่ยนรูป หมายความว่าคุณไม่สามารถเปลี่ยนแปลงเนื้อหาได้หลังจากสร้าง
ต่อไปนี้คือบางกรณีที่คุณสามารถใช้การแจงนับกับ Python tuples
A. การใช้ Python Enumerate() เพื่อค้นหาองค์ประกอบในทูเพิล
เมื่อต้องจัดการกับทูเพิลใน Python คุณอาจต้องค้นหาว่ามีองค์ประกอบอยู่ในทูเพิลหรือไม่
โค้ดตัวอย่างต่อไปนี้สาธิตการใช้การแจงนับเพื่อค้นหาองค์ประกอบในทูเพิล:
fruits = ('apple', 'banana', 'mango', 'grape', 'orange')
for i, fruit in enumerate(fruits):
if fruit == 'mango':
print(f"'mango' found at position {i}")
รหัสนี้จะพิมพ์ “'mango' อยู่ที่ตำแหน่ง 2” เนื่องจาก 'mango' อยู่ที่ดัชนี 2 ใน tuple
B. การใช้ Python Enumerate() เพื่อสร้างพจนานุกรมจากทูเพิล
หากคุณมีทูเพิลและต้องการแปลงเป็นพจนานุกรม ฟังก์ชัน enumerate() ของ Python สามารถเป็นเครื่องมือของคุณได้
โค้ดตัวอย่างแสดงวิธีสร้างพจนานุกรมจากทูเพิลโดยใช้การแจงนับ:
fruits = ('apple', 'banana', 'mango', 'grape', 'orange')
fruit_dict = {i: fruit for i, fruit in enumerate(fruits)}
print(fruit_dict)
รหัสนี้จะพิมพ์พจนานุกรมโดยที่คีย์เป็นดัชนีและค่าเป็นองค์ประกอบจากทูเพิล
3. วิธีใช้ Enumerate กับ Python Dictionaries
ใน Python พจนานุกรมคือชุดของคู่คีย์-ค่า ที่ไม่แน่นอนและไม่ เรียงลำดับ ซึ่งแต่ละคีย์ต้องไม่ซ้ำกัน ให้คิดว่ามันเป็นพจนานุกรมในชีวิตจริง: คุณค้นหาคำ (คีย์) และรับคำจำกัดความ (ค่า)
ต่อไปนี้คือบางกรณีที่คุณสามารถใช้การแจงนับกับพจนานุกรม Python ได้:
ก. การวนซ้ำคีย์และค่าของพจนานุกรม
คุณสามารถใช้ฟังก์ชัน enumerate() เพื่อวนซ้ำคีย์และค่าต่างๆ ของพจนานุกรม
ฟังก์ชัน enumerate() เพิ่มตัวนับให้กับวัตถุที่ทำซ้ำได้ (เช่น พจนานุกรม) ช่วยให้คุณเข้าถึงค่าดัชนีปัจจุบันได้
ตัวอย่างของฟังก์ชันแจกแจงด้วยพจนานุกรม Python แสดงไว้ด้านล่าง:
example_dict = {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
for i, k in enumerate(example_dict):
print(i, k)
ในโค้ด Python นี้ อันดับแรกเราจะสร้างพจนานุกรมชื่อ example_dict จากนั้นเราใช้ฟังก์ชัน enumerate() เพื่อวนซ้ำพจนานุกรม
สำหรับการวนซ้ำแต่ละครั้ง เราจะพิมพ์จำนวนลูป (ซึ่งกำหนดโดย i และเริ่มจาก 0) และคีย์ปัจจุบัน (ซึ่งเป็น k) จากพจนานุกรม
B. การรวม Python Enumerate กับฟังก์ชัน Item
คุณยังสามารถเข้าถึงทั้งคีย์และค่าของพจนานุกรมผ่าน ฟังก์ชัน items ()ร่วมกับenumerate() ฟังก์ชัน items ()ส่งคืนคอลเล็กชันคู่คีย์-ค่าที่วนซ้ำได้เป็นทูเพิล
ตัวอย่างด้านล่างแสดงวิธีใช้ ฟังก์ชัน items()กับenumerate() :
example_dict = {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
for i, (k, v) in enumerate(example_dict.items()):
print(i, k, v)
ในโค้ดนี้ เราสร้างพจนานุกรมชื่อexample_dictจากนั้นเราใช้ฟังก์ชัน enumerate() เพื่อวนซ้ำคู่คีย์-ค่าของพจนานุกรม ในระหว่างการวนซ้ำแต่ละครั้ง เราจะพิมพ์ดัชนีลูป 'i' คีย์ปัจจุบัน 'k' และค่าที่สอดคล้องกัน 'v'
ตอนนี้คุณมีความเข้าใจที่ชัดเจนเกี่ยวกับวิธีใช้ฟังก์ชัน enumerate() ของ Python ในสถานการณ์ทั่วไปบางสถานการณ์ แต่ enumerate() มีมากกว่าที่จะนำเสนอ
มาดูกรณีการใช้งานขั้นสูงเกี่ยวกับ enumerate() ในหัวข้อถัดไปกัน!
3 กรณีการใช้งานขั้นสูงของ Python Enumerate
ในส่วนนี้ เราจะไปไกลกว่าพื้นฐานและสำรวจกรณีการใช้งานขั้นสูงของฟังก์ชันการแจงนับใน Python
เราจะครอบคลุมกรณีการใช้งานต่อไปนี้:
การใช้ Enumerate กับคลาส Python
การใช้ Enumerate กับ Enum Classes
ใช้การแจงนับสำหรับการกลับคำสั่ง
เข้าเรื่องกันเลย!
1. การใช้ Enumerate กับ Python Classes
ในเส้นทางการเขียนโปรแกรม Python ของคุณ คุณอาจพบสถานการณ์ที่คุณต้องการใช้การแจงนับกับคลาสที่กำหนดเอง
เพื่อให้บรรลุเป้าหมายนี้ คลาสของคุณควรใช้ เมธอด iter()ซึ่งช่วยให้สามารถวนซ้ำได้
พิจารณาคลาสสีที่เก็บชื่อสีและค่าเลขฐานสิบหกที่เกี่ยวข้อง:
class Color:
def __init__(self, colors: dict):
self.colors = colors
def __iter__(self):
return iter(self.colors.items())
colors = Color({"red": "#FF0000", "green": "#00FF00", "blue": "#0000FF"})
for index, (name, hex_value) in enumerate(colors):
print(f"{index}: {name} => {hex_value}")
ในโค้ดนี้ เรากำลังสร้างคลาสสีที่ใช้พจนานุกรมชื่อสีและค่าเลขฐานสิบหกที่เกี่ยวข้อง
เมื่อคุณใช้ enumerate() ในลูป จะแสดงดัชนีพร้อมกับคู่คีย์-ค่าแต่ละคู่ ซึ่งจะช่วยให้คุณสามารถพิมพ์ดัชนี ชื่อสี และค่าเลขฐานสิบหกในสตริงที่จัดรูปแบบได้
2. การใช้ Python Enumerate กับ Enum Classes
Python มาพร้อมกับคลาส Enumในตัวซึ่งช่วยให้คุณสร้างประเภทการแจงนับด้วยค่าจำนวนเต็มที่กำหนดโดยอัตโนมัติ
ตัวอย่างเช่น ลองดูที่รหัสต่อไปนี้:
from enum import Enum, auto
class Direction(Enum):
NORTH = auto()
EAST = auto()
SOUTH = auto()
WEST = auto()
for index, direction in enumerate(Direction):
print(f"{index}: {direction.name} => {direction.value}")
ในสคริปต์นี้ เรากำลังกำหนดทิศทางการแจงนับด้วยสมาชิกสี่ตัว (เหนือ ตะวันออก ใต้ และตะวันตก) โดยใช้โมดูล enum ของ Python ฟังก์ชัน auto() กำหนดค่าอัตโนมัติให้กับสมาชิกแต่ละตัว
เมื่อคุณใช้ enumerate() ในลูป มันจะแสดงดัชนีพร้อมกับสมาชิกการแจงนับแต่ละตัว ซึ่งช่วยให้คุณพิมพ์ดัชนี ชื่อของสมาชิก และค่าที่กำหนดโดยอัตโนมัติในสตริงที่จัดรูปแบบ
ผลลัพธ์ของรหัสนี้ได้รับในภาพด้านล่าง:
3. การใช้ Python Enumerate สำหรับการกลับคำสั่ง
ในบางกรณี คุณอาจต้องการระบุรายการในลำดับย้อนกลับ คุณสามารถทำได้โดยใช้ ฟังก์ชันในตัว reverse ( )ร่วมกับenumerate()
ตัวอย่างต่อไปนี้แสดงการแจกแจงรายการในลำดับที่กลับรายการ:
my_list = ["apple", "banana", "cherry"]
for index, item in enumerate(reversed(my_list)):
print(f"{index}: {item}")
ในโค้ดนี้ เรากำลังวนซ้ำ my_list เวอร์ชันย้อนกลับโดยใช้ enumerate() ซึ่งให้ดัชนีและรายการจากรายการที่กลับรายการในแต่ละการวนซ้ำ อนุญาตให้คุณพิมพ์ดัชนีและรายการในรูปแบบสตริง
ฟังก์ชันreverse ()จะไม่แก้ไขลำดับเดิม มันสร้างตัววนซ้ำใหม่ที่นำเสนอรายการในลำดับย้อนกลับ
หากต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับฟังก์ชันใน Python โปรดดูวิดีโอต่อไปนี้:
ความคิดสุดท้าย
ในขณะที่คุณเดินทางต่อใน Python คุณจะต้องเชี่ยวชาญฟังก์ชัน enumerate() เป็นเครื่องมือที่ช่วยเพิ่มความสามารถในการอ่านรหัสและประสิทธิภาพ
เมื่อใช้ enumerate() คุณจะสามารถเข้าถึงทั้งดัชนีและค่าในลูปได้อย่างราบรื่น ลดความจำเป็นในการใช้ตัวแปรตัวนับหรือการสร้างดัชนี มันทำให้โค้ดของคุณง่ายขึ้นและทำให้เป็น Pythonic มากขึ้น
ไม่ว่าคุณจะวนซ้ำผ่านรายการ ทูเพิล สตริง หรือพจนานุกรม enumerate() จะเป็นเครื่องมือที่มีค่า เมื่อทำความเข้าใจและฝึกฝนด้วย enumerate() คุณจะก้าวไปสู่ขั้นตอนสำคัญในการฝึกฝนทักษะการเขียนโปรแกรม Python ของคุณ!
ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง
คุณจะได้เรียนรู้วิธีการบันทึกและโหลดวัตถุจากไฟล์ .rds ใน R บล็อกนี้จะครอบคลุมถึงวิธีการนำเข้าวัตถุจาก R ไปยัง LuckyTemplates
ในบทช่วยสอนภาษาการเข้ารหัส DAX นี้ เรียนรู้วิธีใช้ฟังก์ชัน GENERATE และวิธีเปลี่ยนชื่อหน่วยวัดแบบไดนามิก
บทช่วยสอนนี้จะครอบคลุมถึงวิธีการใช้เทคนิค Multi Threaded Dynamic Visuals เพื่อสร้างข้อมูลเชิงลึกจากการแสดงข้อมูลแบบไดนามิกในรายงานของคุณ
ในบทความนี้ ฉันจะเรียกใช้ผ่านบริบทตัวกรอง บริบทตัวกรองเป็นหนึ่งในหัวข้อหลักที่ผู้ใช้ LuckyTemplates ควรเรียนรู้ในขั้นต้น
ฉันต้องการแสดงให้เห็นว่าบริการออนไลน์ของ LuckyTemplates Apps สามารถช่วยในการจัดการรายงานและข้อมูลเชิงลึกต่างๆ ที่สร้างจากแหล่งข้อมูลต่างๆ ได้อย่างไร
เรียนรู้วิธีคำนวณการเปลี่ยนแปลงอัตรากำไรของคุณโดยใช้เทคนิคต่างๆ เช่น การแยกสาขาและการรวมสูตร DAX ใน LuckyTemplates
บทช่วยสอนนี้จะหารือเกี่ยวกับแนวคิดของการทำให้แคชข้อมูลเป็นรูปธรรมและวิธีที่สิ่งเหล่านี้ส่งผลต่อประสิทธิภาพของ DAX ในการให้ผลลัพธ์
หากคุณยังคงใช้ Excel อยู่จนถึงตอนนี้ นี่เป็นเวลาที่ดีที่สุดในการเริ่มใช้ LuckyTemplates สำหรับความต้องการในการรายงานทางธุรกิจของคุณ
เกตเวย์ LuckyTemplates คืออะไร ทั้งหมดที่คุณต้องการรู้