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

ความเข้าใจรายการที่ซ้อนกันใน python


รายการที่ซ้อนกันคือรายการภายในรายการ Python มีคุณสมบัติในการจัดการรายการที่ซ้อนกันอย่างสวยงามและใช้ฟังก์ชันทั่วไปเพื่อจัดการกับรายการที่ซ้อนกัน ในบทความนี้ เราจะมาดูวิธีการใช้ list comprehension เพื่อสร้างและใช้รายการที่ซ้อนกันใน python

การสร้างเมทริกซ์

การสร้างเมทริกซ์เกี่ยวข้องกับการสร้างชุดของแถวและคอลัมน์ เราสามารถใช้ for loop เพื่อสร้างแถวและคอลัมน์ของเมทริกซ์โดยใส่รายการ python หนึ่งรายการด้วย for loop ในรายการ python อีกรายการที่มี for loop

ตัวอย่าง

matrix = [[m for m in range(4)] for n in range(3)]
print(matrix)

การเรียกใช้โค้ดด้านบนทำให้เราได้ผลลัพธ์ดังต่อไปนี้:

[[0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3]]

การกรองจากรายการซ้อน

เราสามารถใช้ list comprehension พร้อมคุณสมบัติการกรองโดยใช้ for loop ภายในรายการย่อย ด้านล่างเรามีรายการ 2 มิติพร้อมรายการย่อยหนึ่งชั้นในรายการที่ใหญ่กว่า เราเข้าถึงองค์ประกอบที่เลือกได้จากแต่ละรายการที่ซ้อนกันเหล่านี้ โดยใช้เงื่อนไขการกรอง

ตัวอย่าง

years = [['January', 'February', 'March'], ['April', 'May', 'June'], ['July', 'August', 'September'],['October','November','December']]
# Nested List comprehension with an if condition
years = [years for sublist in years for years in sublist if len(years) <= 5]
print(years)

การเรียกใช้โค้ดด้านบนทำให้เราได้ผลลัพธ์ดังต่อไปนี้:

['March', 'April', 'May', 'June', 'July']

แบนรายการย่อยที่ซ้อนกัน

นอกจากนี้เรายังสามารถนำรายการที่ซ้อนกันและทำให้เรียบโดยการสร้างรายการเดียวโดยไม่ต้องมีรายการย่อยอยู่ภายใน

ตัวอย่าง

nested_list = [[1] ,[17, 19], [21,23,25], [32,35,37,39]]
# Nested List Comprehension to flatten a given 2-D matrix
flattened_list = [value for sublist in nested_list for value in sublist]
print(flattened_list)

การเรียกใช้โค้ดด้านบนทำให้เราได้ผลลัพธ์ดังต่อไปนี้:

[1, 17, 19, 21, 23, 25, 32, 35, 37, 39]