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

Python - แปลงรายการที่กำหนดเป็นรายการที่ซ้อนกัน


อาจมีสถานการณ์เมื่อเราจำเป็นต้องแปลงองค์ประกอบในรายการเป็นรายการในตัวเอง กล่าวคือ สร้างรายการที่ซ้อนกันเนื่องจากองค์ประกอบเป็นรายการด้วย

การใช้การวนซ้ำ

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

ตัวอย่าง

listA = ['Mon','Tue','Wed','Thu','Fri']

print("Given list:\n",listA)
new_list = []

# Creating list of list format
for elem in listA:
   temp = elem.split(', ')
   new_list.append((temp))

# Final list
res = []

for elem in new_list:
   temp = []
   for e in elem:
      temp.append(e)
   res.append(temp)

# printing
print("The list of lists:\n",res)

ผลลัพธ์

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

Given list:
   ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
The list of lists:
   [['Mon'], ['Tue'], ['Wed'], ['Thu'], ['Fri']]

ด้วย ast

นอกจากนี้เรายังสามารถใช้ชื่อโมดูลหลามต้นไม้ไวยากรณ์นามธรรมหรือที่เรียกว่า ast มีฟังก์ชันชื่อ literal_eval ซึ่งจะรวมองค์ประกอบของรายการที่กำหนดและแปลงเป็นรายการใหม่

ตัวอย่าง

import ast
listA = ['"Mon","Tue"','"Wed","Thu","Fri"']
print("Given list: \n", listA)
res = [list(ast.literal_eval(x)) for x in listA]

# New List
print("The list of lists:\n",res)

ผลลัพธ์

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

Given list:
   ['"Mon","Tue"', '"Wed","Thu","Fri"']
The list of lists:
   [['Mon', 'Tue'], ['Wed', 'Thu', 'Fri']]