วิธีสร้างรายการใน Python – ง่าย!

ภาพยนตร์เรื่องไหนที่จะดู?
 
  วิธีสร้างรายการใน Python – ง่าย!

วันนี้เราจะมาดูวิธีสร้างรายการใน Python มีหลายวิธีในการทำเช่นนั้น มาเริ่มกันเลยและดูวิธีการบางอย่าง





สำหรับ Loop และ append() method

วิธีแรกค่อนข้างง่ายและตรงไปตรงมา เริ่มแรก เราสร้างรายการว่าง lst1 จากนั้นเราเรียกใช้ลูปและต่อท้ายรายการไปยัง lst1 .



หากเราต้องการแทรก รายการย่อยแล้วเราจะต้องเรียกใช้ลูป ครั้งโดยใช้ แนว() การทำงาน. มาทำความเข้าใจแนวคิดนี้โดยใช้ตัวอย่าง



lst1 = []
for i in range(0, 5):
  lst1.append([])
print(lst1)

เอาท์พุต



[[], [], [], [], []]

ที่นี่วนซ้ำห้าครั้ง ในการวนซ้ำแต่ละครั้ง เราผนวกรายการว่างเพื่อ lst1 ซึ่งช่วยให้เราสร้างรายการตามที่คุณเห็นในผลลัพธ์

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

อีกวิธีหนึ่งคือการใช้การเข้าใจรายการที่ช่วยให้เราเข้าใจได้ง่ายขึ้นและกระชับขึ้น มาดูตัวอย่างกัน

จูดี้ แอน ซานโตส และไรอัน อากอนซิลโล

lst  = [[] for i in range(0, 5)]
print(lst)

เอาท์พุต

[[], [], [], [], []]

ความเข้าใจรายการจะส่งคืนรายการที่มีเนื้อหาขึ้นอยู่กับนิพจน์ในลูปและเงื่อนไขถ้ามี (ถ้ามี) เสมอ

ในตัวอย่างข้างต้น เราเพิ่มรายการย่อยทุกครั้งที่ลูปทำงาน ดังนั้น ผลลัพธ์จึงมีรายการของรายการ

NumPy Library

อีกวิธีในการทำรายการคือ นำพาย . เป็นห้องสมุดที่มีประสิทธิภาพสำหรับการคำนวณทางวิทยาศาสตร์

โดยเร็วที่สุดอาศัยอยู่ในนิวยอร์ก

มีวิธีการและเครื่องมือมากมายในการสร้างและทำงานกับอาร์เรย์หลายมิติอย่างมีประสิทธิภาพ

เราสามารถสร้างรายการโดยใช้ ว่างเปล่า() วิธีการของไลบรารี NumPy เราจำเป็นต้องส่งทูเพิลที่มีขนาดแถวและขนาดคอลัมน์

นอกจากนี้ยังใช้ประเภทข้อมูล โดยค่าเริ่มต้น มันจะสร้างอาร์เรย์ประเภท numpy.float64 .

นอกจากนี้ยังส่งคืน ndarray (อาร์เรย์ N-Dimensional) ที่มีขนาดและประเภทคงที่ ในการแปลงเป็นรายการเราจะใช้ รายการ () กระบวนการ.

พิจารณารหัสต่อไปนี้:

import numpy as np
np_array = np.empty((5, 0))
lst = np_array.tolist()
print(lst)
print(f"Type of np_array: {type(np_array)} and the type of lst: {type(lst)}")

เอาท์พุต

[[], [], [], [], []]
Type of np_array: <class 'numpy.ndarray'> and the type of lst: <class 'list'>

เราสามารถทำได้เช่นเดียวกันโดยใช้ numpy.ndarray() กระบวนการ. มาดูกัน.

พยากรณ์อากาศสำหรับสัปดาห์ที่ปากาซา
import numpy as np
np_array = np.ndarray((5, 0))
lst = np_array.tolist()
print(lst)

[[], [], [], [], []]

ฟังก์ชัน map()

นอกจากนี้เรายังสามารถสร้างรายการโดยใช้ Python ในตัว แผนที่() การทำงาน. แผนที่() รับสองอาร์กิวเมนต์: ฟังก์ชันและแบบวนซ้ำได้

ฉัน t เรียกใช้ฟังก์ชันที่กำหนดสำหรับแต่ละรายการของ iterable และส่งคืนตัววนซ้ำ ลองพิจารณาตัวอย่างต่อไปนี้

n=5
lst = [None]*n
lst = list(map(lambda x: [], lst))
print(lst)

เอาท์พุต

[[], [], [], [], []]

ขั้นแรก เราสร้างรายการของ องค์ประกอบที่ประกอบด้วย ไม่มี . จากนั้นเราก็ส่งรายการนี้ไปที่ map()

แต่ละรายการของรายการภายนอกได้รับการแมปไปยังรายการว่างโดยใช้ฟังก์ชันที่ไม่ระบุชื่อ สุดท้าย เราแปลง iterator ที่ส่งคืน (อ็อบเจ็กต์แผนที่) เป็นรายการเพื่อรับรายการ

สิ่งที่ไม่ควรทำ

เราสามารถสร้างรายการแบบมิติเดียวได้ด้วยวิธีต่อไปนี้

ราคา เมย์เวทเธอร์ VS ปาเกียว พีพีวี
lst = [None]*n

ที่นี่, lst จะมีขนาด และแต่ละรายการจะมีมูลค่า ไม่มี . กล่าวอีกนัยหนึ่ง ค่าใดๆ ที่เราใส่ในวงเล็บเหลี่ยมจะถูกทำซ้ำ ครั้ง

แล้วถ้าเราใส่ [] เข้าไป เราก็จะได้ list ของ list ใช่ไหม? คุณทำอย่างนั้น แต่ทุกรายการอ้างถึงวัตถุเดียวกัน (อันแรก) พูดง่ายๆ ก็คือ เราได้รับ รายการย่อยเดียวกัน มาดูกัน.

n=5
lst = [[]]*n
print(lst)
#append an item to the last list
lst[n-1].append(3)
print(lst)

กิน bulaga 19 กันยายน 2558

เอาท์พุต

[[], [], [], [], []]
[[3], [3], [3], [3], [3]]

พิจารณารหัสอื่น

n=5
lst = []
new_list =  [lst for i in range(0, n)]
#append an item to the last list
new_list[n-1].append(3)
print(lst)
print(new_list)

รหัสด้านบนนี้ยังสร้างการอ้างอิงตัวแปรห้ารายการ lst . ดังนั้น new_list[0], new_list[1], … new_list[n-1] อ้างถึงที่อยู่เดียวกันที่ชี้โดย lst .

เอาท์พุต

[3]
[[3], [3], [3], [3], [3]]

ใช้ lst[:] แทน lst หรือคัดลอกรายการอย่างชัดเจนโดยใช้ สำเนา() จาก สำเนา โมดูล.