เครื่องกำเนิดไฟฟ้าหลาม

| |

โกลอฟนา

หุ่นยนต์

ตัวสร้างรายการช่วยให้คุณสร้างรายการตามรายการที่มีอยู่ได้อย่างรวดเร็ว

ตัวสร้างเพิ่มเติมสามารถใช้เพื่อสร้างรายการตามประเภทใดก็ตามที่กำลังวนซ้ำ (เช่น แถวหรือสิ่งอันดับ)

เป็นผลให้ลูปสร้างรายการเดียวกัน:

["8", "h", "o", "s", "t"]

นิพจน์อัจฉริยะในตัวสร้างรายการ
ตัวสร้างรายการสามารถใช้นิพจน์อัจฉริยะเพื่อเปลี่ยนรายการที่มีอยู่หรือประเภทข้อมูลล่าสุดอื่นๆ และสร้างรายการใหม่ได้
มาดูตัวสร้างด้วยนิพจน์ if:

fish_tuple = ("ปลาปักเป้า", "ปลาการ์ตูน", "ปลาดุก", "ปลาหมึกยักษ์")

รายการปลา =

พิมพ์ (รายการปลา)

รายการ vikory มีทูเพิล fish_tuple เป็นพื้นฐานสำหรับ fish_list ใหม่

คำสำคัญสำหรับและในใช้ในลักษณะเดียวกับในโลกอดีต

นอกจากนี้ ตัวสร้างยังมีแบบฟอร์ม if ซึ่งเป็นสาเหตุที่รวมแถวปลาหมึกยักษ์ไว้ในรายการ


ใช้แทนรายการ fish_list และกำหนดค่าใหม่เพื่อรวมองค์ประกอบ fish_tuple ทั้งหมด ยกเว้น 'octopus'

["ปลาปักเป้า", "ปลาการ์ตูน", "ปลาดุก"]

ดังที่คุณทราบ คุณสามารถแยกองค์ประกอบเพลงออกจากรายการใหม่ได้ด้วยความช่วยเหลือของการแสดงออกทางจิตใจ

ตอนนี้เรามาดูอีกตัวอย่างหนึ่ง ซึ่งใช้การดำเนินการทางคณิตศาสตร์ ตัวเลข และเมธอด range()

พิมพ์(หมายเลข_รายการ)
อ่านเพิ่มเติม:

รายการใหม่ number_list มีค่ากำลังสองขององค์ประกอบที่จับคู่สกินในช่วง 0-9

พิมพ์(หมายเลข_รายการ)
อ่านเพิ่มเติม:

ผลลัพธ์จะเป็นดังนี้:

ลองมาดูที่ก้นนี้ทีละคน

พิมพ์(หมายเลข_รายการ)
ใช้แทนรายการ fish_list และกำหนดค่าใหม่เพื่อรวมองค์ประกอบ fish_tuple ทั้งหมด ยกเว้น 'octopus'

หากคุณแทนที่ x ** 2 สำหรับ x และเพียง vikorize x สำหรับ x รายการจะมีลักษณะดังนี้:

number_list=

พิมพ์(หมายเลข_รายการ)
ใช้แทนรายการ fish_list และกำหนดค่าใหม่เพื่อรวมองค์ประกอบ fish_tuple ทั้งหมด ยกเว้น 'octopus'

พิมพ์(หมายเลข_รายการ)

หลังจากนั้น การแสดงออกทางจิตใจก็ถูกเพิ่มเข้าไปในเครื่องกำเนิด:

Viraz หากรวมหมายเลขที่ไม่ได้จับคู่ทั้งหมดจากรายการ

รายการใช้โค้ดสามแถว

แต่เครื่องกำเนิดต้องการเพียงสิ่งเดียวเท่านั้น:

>>> ก = >>> ก

  1. การออกแบบเป็นตัวกำเนิดน้ำล้น
  2. โครงสร้างทั้งหมดจะต้องอยู่ในรายการสี่เหลี่ยมจัตุรัส ซึ่งแสดงโดยรายการพับ
  3. ตรงกลางแขนมีสามส่วน: สิ่งที่ใช้ได้ผลจากองค์ประกอบต่างๆ (ในสถานการณ์ของเรา เราไม่ได้ทำอะไรเลย เราแค่เพิ่มมันเข้าไปก่อนที่จะโอเวอร์โฟลว์)ภราดรภาพคืออะไร (เราใช้องค์ประกอบ i)

ดวงดาวเป็นพี่น้องกัน (จากวัตถุพิสัย)

เพื่อเสริมความแข็งแกร่งของชิ้นส่วน vikorystvoemo

คำหลัก

  1. ในและเพื่อ
  2. มาดูก้นกันบ้าง
  3. >>> ก = >>> ข = >>> ข
ในสถานการณ์นี้ เราใช้องค์ประกอบสกินจากส่วนล้นและยกกำลังสอง

ดาว:

Robimo - มาสร้างองค์ประกอบของเราที่จัตุรัสกันดีกว่า

เบเรโมเป็นองค์ประกอบ ดาว – จากรายการก.>>> a = (1:10, 2:20, 3:30) >>> b = สำหรับฉัน ใน a] >>> b

ที่นี่เราใช้คีย์จากพจนานุกรม และรายการที่สร้างขึ้นจะใช้ค่าของคีย์ตามค่าที่มีอยู่

>>> a = (1:10, 2:20, 3:30) >>> b = [] สำหรับฉัน ใน a] >>> b [, , ] >>> c = >>> c

ใน

ถึงผู้ชายคนนี้

แต่เครื่องกำเนิดต้องการเพียงสิ่งเดียวเท่านั้น:

รายการ b มีรายการที่ซ้อนกัน

เมื่อละเว้นวงเล็บเหลี่ยมในเครื่องกำเนิดไฟฟ้าด้านหลัง viraz ลำดับจะถูกลบออก

หากคุณต้องการรายการเพียร์พร้อมคีย์และค่าพจนานุกรม คุณจะต้องนำรายการไฟล์แนบแล้วสร้างส่วนประกอบอื่นๆ

เพื่อหลีกเลี่ยงการก่อสร้างที่ซ้อนกันนี้สำหรับ

ไวยากรณ์ดั้งเดิมสำหรับการสร้างการเปลี่ยนแปลงมีลักษณะดังนี้: >>> c = >>> for i ใน b: ... สำหรับ j ใน i: ... c.append(j) ... >>> cการสร้างมุ่งเน้นไปที่คุณค่าที่จำเป็นของวัตถุเป็นหลัก ในกรณีนี้ หากมีองค์ประกอบลำดับไม่มากนัก ก็สามารถแยกองค์ประกอบเหล่านั้นออกทีละรายการได้ หากจำนวนเกินโหลคุณควรคิดอย่างจริงจังเกี่ยวกับการเพิ่มตัวสร้างลงในรายการการออกแบบนี้จะทำให้คุณมั่นใจได้.

เติมอัตโนมัติ

ตามคำแนะนำในการร้องเพลง

ก้นที่น่ารังเกียจแสดงให้เห็นถึงการสร้างรายการตัวเลขของ Python โดยใช้ตัวสร้าง

เปลี่ยน i є ส่งไปยังข้อมูลข้อมูลองค์ประกอบปัจจุบัน

ฟังก์ชัน range ที่นี่รับอาร์กิวเมนต์สองตัวที่กำหนดขอบเขตระหว่างลำดับจำนวนเต็มที่สร้างขึ้น

ข้อมูลจะแสดงบนหน้าจอโดยวิธีการพิมพ์

>>> ข้อมูล = >>> พิมพ์ (ข้อมูล) ตัวสร้างรายการ Python 3 ใช้งานได้กับค่าตัวเลขเท่านั้นตามที่แสดงการโจมตี ตัวสร้างสามารถส่งอาร์กิวเมนต์ไปยังแถวหรือเขียนลงไปได้

ตามคำแนะนำในการร้องเพลง

>>> ข้อมูล = >>> พิมพ์ (ข้อมูล) ["p", "y", "t", "h", "o", "n"]

ด้วยเหตุนี้โค้ดนี้จะสร้างรายการอักขระที่มีแถวเอาต์พุต

เช่นเดียวกับก้นด้านหน้า คุณสามารถแสดงชุดข้อมูลบนหน้าจอโดยใช้วิธีการพิมพ์ที่กล่าวไปแล้วเครื่องกำเนิดมีสมอง

ตามคำแนะนำในการร้องเพลง

หนึ่งในวิธีที่ได้รับความนิยมมากที่สุดในการสร้างรายการใน Python คือคลื่นสมอง

ก้นด้านหน้าแสดงให้เห็นแนวทางที่ชัดเจนในการกรอกรายการเครื่องกำเนิดไฟฟ้าเพิ่มเติม

บางครั้งโปรแกรมจำเป็นต้องมีหลายรายการที่มีสมาชิกมากกว่าหนึ่งคน

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

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

>>> data = [ สำหรับ j อยู่ในช่วง (0, 3)] >>> พิมพ์ (ข้อมูล) [, , ]

รหัสนี้

สาธิตการสร้างเมทริกซ์สองมิติ 3x3 โดยใช้ตัวสร้างรายการสองมิติของ Python

องค์ประกอบของลำดับตัวเลขนี้คือค่าดิจิทัลของวิธีช่วงเช่นเดียวกับที่อยู่ด้านหน้า การเปลี่ยนแปลง i และ j ทีละรอบ เพิ่มรอบทีละหนึ่ง และคูณกันเองฟังก์ชันการพิมพ์ทำหน้าที่เป็นรูปภาพของชุดข้อมูลที่สร้างขึ้นบนหน้าจอคอมพิวเตอร์ เมทริกซ์ของตัวสร้างศูนย์มักใช้เมื่อสร้างรายการที่ซ้อนกันของ Pythonก้นจามรีเป็นเมทริกซ์ที่ละลายน้ำได้ 3×2:

>>> data = [ สำหรับ y อยู่ในช่วง (3)] >>> พิมพ์ (ข้อมูล) [, , ]

รายชื่อเครื่องกำเนิดแลมบ์ดา

ดังที่คุณทราบ ฟังก์ชัน lambda ใน Python เป็นการดำเนินการที่หมุนเวียนค่า

เปเรวาโกยา

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

วิธีการใหม่

เมธอดในไลบรารีนี้ช่วยให้คุณสร้างรายการโดยใช้การวนซ้ำที่สั้นกว่าได้ ตัวอย่างเช่น,ด้วยความช่วยเหลือนี้ คุณสามารถสร้างชุดค่าผสมต่างๆ ทั้งเชิงสัญลักษณ์และตัวเลขได้อย่างง่ายดาย

ตามคำแนะนำในการร้องเพลง

- รหัสที่ไม่เหมาะสมคือการคลิกที่รายการซ้ำโดยคลิกที่ฟังก์ชันทำซ้ำ

ดังที่เห็นได้ชัดจากผลลัพธ์ที่ได้ วิธีการจะหมุนลำดับของวัตถุใหม่ (แต่ละอันมีหมายเลข 1) ทำซ้ำ 5 ครั้ง

วิสโนวอค ใส่มันเข้าไปความสามารถในการทำงาน

ซึ่งแสดงใน Python โดยตัวสร้างรายการ ช่วยให้โปรแกรมปรับปรุงความเร็วและประสิทธิภาพของการประมวลผลข้อมูล กลไกที่กล่าวถึงในที่นี้ประกอบด้วยการสร้างทั้งรายการหลักและหลายโลกโดยอิงตามความคิดโบราณ เช่นเดียวกับวัฏจักรรองนอกจากนี้ยังมีความสามารถในการสร้างนิพจน์ lambda โดยใช้ไลบรารี intertools

การเขียนโปรแกรมสกินมีฟีเจอร์หนึ่ง นั่นคือแบบพับหรือแบบง่ายเป็นพิเศษ

อย่างที่คุณเขียนไว้ก่อนหน้านี้ในเหมืองอื่น คุณอาจไม่โกรธกับเรื่องนี้ เศษชิ้นส่วนนั้นเป็นของคุณ ภาษาเก่ามิได้รู้สึกอย่างนี้มากนัก (เมื่อก่อนข้าพเจ้ากระทำอยู่ แต่กลับรู้สึกอย่างแรงกล้าในสิ่งอื่นนี้) ในส่วนนี้คุณจะพบกับเครื่องมือสร้างรายการ พจนานุกรม และการคูณ - แนวคิดสามประการที่เกี่ยวข้องกัน ซึ่งเน้นไปที่เทคโนโลยีที่แข็งแกร่งมากเพียงหนึ่งเดียวก่อนอื่น ฉันอยากจะใช้เวลาสักครู่จากการสนทนาของเราเพื่อบอกคุณเกี่ยวกับสองโมดูลที่จะช่วยคุณจัดการระบบไฟล์ในเครื่องของคุณ การทำงานกับไฟล์และไดเร็กทอรี Python 3 มาพร้อมกับโมดูล ระบบปฏิบัติการ "หมายถึง" อะไร ระบบปฏิบัติการ- ใช้ฟังก์ชันที่ไม่ใช่ส่วนบุคคลเพื่อดึงข้อมูลเกี่ยวกับไดเร็กทอรี ไฟล์ และกระบวนการในเครื่อง

ความคมที่ยอดเยี่ยม

(และในกรณีเช่นนี้ และสำหรับการบงการพวกเขา) Python แนะนำการรวมที่มีประสิทธิภาพมากยิ่งขึ้นอินเทอร์เฟซซอฟต์แวร์

  1. สำหรับ
  2. ระบบปฏิบัติการที่รองรับทั้งหมด
  3. เพื่อให้โปรแกรมของคุณสามารถรันบนคอมพิวเตอร์เครื่องใดก็ได้โดยมีโค้ดเฉพาะแพลตฟอร์มจำนวนขั้นต่ำ

แคตตาล็อกการทำงานในบรรทัด

เมื่อคุณมีความรู้เกี่ยวกับ Python คุณจะใช้เวลามากมาย เชลล์แบบโต้ตอบของ Python- เมื่อคุณยืดหนังสือเล่มนี้ออก คุณจะได้ก้นที่มีลักษณะดังนี้: การนำเข้าโมดูลใด ๆ จากโฟลเดอร์แอปพลิเคชันคลิกที่ฟังก์ชั่นของโมดูลนี้ คำอธิบายของผลลัพธ์ ประการแรก มีแค็ตตาล็อกการทำงานในปัจจุบันแต่คุณไม่รู้อะไรเลยเพราะไม่พบแคตตาล็อกตัวอย่างตามท้องถนน

  • เพื่อแก้ไขปัญหานี้ คุณสามารถทำได้ 1 ใน 2 วิธี: ประการแรก มีแค็ตตาล็อกการทำงานในปัจจุบัน;
  • หรือเพิ่มโฟลเดอร์ตัวอย่างไปยังคำขอของผู้ดำเนินการ

หรือเพิ่มไดเร็กทอรีการทำงานลงในโฟลเดอร์ตัวอย่าง ไดเร็กทอรีการทำงานปัจจุบันเป็นพารามิเตอร์โดยนัยที่ Python เก็บไว้ในหน่วยความจำสตรีมไดเร็กทอรีการทำงาน ทุกครั้งที่คุณทำงานในเชลล์ Python แบบโต้ตอบ ให้เรียกใช้สคริปต์ของคุณ

แถวคำสั่ง ภาษาเก่าหรือสคริปต์ CGI อยู่ที่นี่บนเว็บเซิร์ฟเวอร์

โมดูล

รวมสองฟังก์ชันสำหรับการทำงานกับไดเร็กทอรีการทำงานที่แน่นอน
>>> นำเข้าระบบปฏิบัติการ

>>> พิมพ์(os.getcwd())

รวมสองฟังก์ชันสำหรับการทำงานกับไดเร็กทอรีการทำงานที่แน่นอน

ซี:\Python31

>>> ระบบปฏิบัติการ .chdir() การทำงานกับชื่อไฟล์และไดเร็กทอรีตั้งแต่ฉันเริ่มพูดถึงแคตตาล็อก ฉันอยากจะเปลี่ยนความเคารพของคุณให้เป็นโมดูล

โมดูล

os.path - คุณสามารถวางฟังก์ชันให้ทำงานกับชื่อไฟล์และไดเร็กทอรีได้>>> พิมพ์ (os .path .join (
"/Users/pilgrim/diveintopython3/examples/"

os.path , "humansize.py") )>>> พิมพ์ (os .path .join (
/Users/pilgrim/diveintopython3/examples/humansize.py

"/Users/pilgrim/diveintopython3/examples"
/Users/pilgrim/diveintopython3/examples\humansize.py

>>> พิมพ์ (os .path .expanduser ("~" ) )
c:\Users\pilgrim

แถวคำสั่ง การทำงานกับชื่อไฟล์และไดเร็กทอรี>>> พิมพ์ (os .path .join (os .path .expanduser ("~" ) , "diveintopython3" , "examples" , "humansize.py" ) )

c:\Users\pilgrim\diveintopython3\examples\humansize.py คุณยังสามารถติดตั้งฟังก์ชันสำหรับแบ่งเส้นทางไฟล์ ชื่อโฟลเดอร์ และไฟล์ในที่จัดเก็บข้อมูลได้

>>> ชื่อพาธ =
(, "humansize.py") )"/Users/pilgrim/diveintopython3/examples/humansize.py"

>>> os .path .split (ชื่อพาธ)

, "humansize.py")
, "humansize.py") )

>>> (dirname, ชื่อไฟล์) = os .path .split (ชื่อพาธ)
>>> นามสกุล

>>>ชื่อไฟล์
"humansize.py"
>>> (ชื่อย่อ, นามสกุล) = os .path .splitext (ชื่อไฟล์)
>>>ชื่อย่อ
"ขนาดมนุษย์"

>>> นามสกุล

".ไพ"

แถวคำสั่ง ดึงมาจากแค็ตตาล็อกโมดูล glob มีสัญลักษณ์ตัวแทนที่สามารถใช้ในเชลล์คำสั่งได้ โลก- นี่ก็เป็นอีกเครื่องมือหนึ่งที่มี

ห้องสมุดมาตรฐาน หลาม)
นี่เป็นวิธีง่ายๆ ในการลบโฟลเดอร์โดยทางโปรแกรมแทน และยังสามารถสร้างสัญลักษณ์โจ๊กเกอร์ที่คุณรู้จักเป็นครั้งคราวในแถวคำสั่งได้อีกด้วย

>>> ระบบปฏิบัติการ .chdir (
"/Users/pilgrim/diveintopython3/" >>> นำเข้าลูกโลก,
>>> glob .glob ("ตัวอย่าง/*.xml" ) ["ตัวอย่าง,
>>> glob .glob ("ตัวอย่าง/*.xml" ) \\ฟีด-broken.xml"]

"ตัวอย่าง

\\ฟีด-ns0.xml"
\\feed.xml"
>>> ระบบปฏิบัติการ .chdir ("ตัวอย่าง/" )
>>> glob .glob ("*test*.py" )
["alphameticstest.py" ,
"พหูพจน์test1.py" ,
"pluraltest2.py" ,
"pluraltest3.py" ,
"pluraltest4.py" ,
"พหูพจน์test5.py" ,
"pluraltest6.py" ,
"romantest1.py" ,
"romantest10.py" ,
"romantest2.py" ,
"romantest3.py" ,
"romantest7.py" ,
"romantest8.py" ,
"romantest9.py" ]

การดึงข้อมูลเกี่ยวกับไฟล์

ระบบปฏิบัติการใดๆ จะจัดเก็บข้อมูลเกี่ยวกับไฟล์ (ข้อมูลเมตา): วันที่สร้าง วันที่แก้ไขล่าสุด ขนาดไฟล์ ฯลฯ Python จัดเตรียมข้อมูลเดียว ระบบปฏิบัติการเพื่อเข้าถึงข้อมูลเมตานี้

โมดูล

รวมสองฟังก์ชันสำหรับการทำงานกับไดเร็กทอรีการทำงานที่แน่นอน
คุณไม่จำเป็นต้องเปิดไฟล์

สิ่งที่คุณต้องมีคือชื่อของไฟล์

c:\Users\pilgrim\diveintopython3\examples
1247520344.9537716

>>> ข้อมูลเมตา = os .stat ("feed.xml")

>>> เมตาดาต้า.st_mtime
>>>เวลานำเข้า
>>> เวลา .localtime (metadata.st_mtime )

เวลา .struct_time (tm_year= 2009 , tm_mon= 7 , tm_mday= 13 , tm_hour= 17 , tm_min= 25 ,

tm_sec = 44, tm_wday = 0, tm_yday = 194, tm_isdst = 1) สละเส้นทางอันเด็ดขาดส่วนหน้ามีหน้าที่ glob.glob()พลิกผันการไหลของทางน้ำ ตัวอย่างแรกมีรูปแบบสั้น เช่น “examples\feed.xml” และอีกตัวอย่างมีรูปแบบสั้น เช่น “romantest1.py”.

ในขณะที่คุณขาดการเร่งปฏิกิริยาในสายการผลิต แต่สำหรับสิ่งนี้
รวมสองฟังก์ชันสำหรับการทำงานกับไดเร็กทอรีการทำงานที่แน่นอน
เส้นทาง vydnosny
คุณสามารถยกเลิกการคลิกไฟล์หรือลบข้อมูลเมตาได้

หากคุณต้องการลบเส้นทางสัมบูรณ์ - เส้นทางที่มีชื่อไดเร็กทอรีทั้งหมดจนถึงรากหรืออักษรระบุไดรฟ์ - คุณจะต้องใช้ฟังก์ชันนี้

os.path.realpath()

>>> นำเข้าระบบปฏิบัติการ

c:\Users\pilgrim\diveintopython3\examples

>>> พิมพ์ (os .path .realpath ("feed.xml" ) )
c:\Users\pilgrim\diveintopython3\examples\feed.xml
[ 2 , 18 , 16 , 8 ]

เครื่องกำเนิดรายการ
[ 1 , 9 , 8 , 4 ]

ในตัวสร้างรายการ คุณสามารถใช้ภาษา Python ใดก็ได้
เครื่องกำเนิดรายการ
[ 2 , 18 , 16 , 8 ]

ด้วยความช่วยเหลือของตัวสร้างรายการ คุณสามารถแสดงรายการหนึ่งก่อนหน้ารายการอื่นได้อย่างง่ายดายโดยย่อฟังก์ชันลงไปที่องค์ประกอบสกิน ภาษาเก่า>>> a_list = [ 1 , 9 , 8 , 4 ]

>>> [ elem * 2 สำหรับองค์ประกอบใน a_list]
>>> a_list
>>> a_list = [ elem * 2 สำหรับองค์ประกอบใน a_list]

ในรายการตัวสร้าง คุณสามารถปรับแต่งนิพจน์ Python ใดๆ ได้ รวมถึงฟังก์ชันโมดูลด้วย
จะทำอย่างไรเพื่อทำงานกับไฟล์และไดเร็กทอรี
>>> นำเข้าระบบปฏิบัติการ , glob
>>> กลม .glob ("*.xml" )

[ "feed-broken.xml" , "feed-ns0.xml" , "feed.xml" ]

>>> [ os .path .realpath (f) สำหรับ f ใน glob .glob ("*.xml" ) ]

["ค:,
"ค:,
"พหูพจน์test5.py" ,
"romantest3.py" ,
"romantest7.py" ,
"romantest8.py" ,
"romantest9.py" ]

"ค:]

>>> [ os .path .realpath (f) สำหรับ f ใน glob .glob ("*.xml" ) ]

>>> [ (os .stat (f) .st_size , os .path .realpath (f) ) สำหรับ f ใน glob .glob ("*.xml" ) ]
[(3074, "ค: \\ Users\\ ผู้แสวงบุญ\\ diveintopython3\\ examples\\ feed-broken.xml") ,
(3386, "ค: \\ Users\\ ผู้แสวงบุญ\\ diveintopython3\\ examples\\ feed-ns0.xml") ,
(3070, "ค: \\ Users\\ ผู้แสวงบุญ\\ diveintopython3\\ examples\\ feed.xml") ]
>>>นำเข้าขนาดมนุษย์

>>> [ (humansize.approximate_size (os .stat (f) .st_size ) , f) สำหรับ f ใน glob .glob ("*.xml" )
[("3.0 KiB" , "feed-broken.xml" ) ,
("3.3 KiB" , "feed-ns0.xml" ) ,
("3.0 KiB" , "feed.xml" ) ]

เครื่องกำเนิดคำศัพท์

ตัวสร้างพจนานุกรมจะสร้างตัวสร้างรายการ และสร้างพจนานุกรมแทนรายการ

>>> [ os .path .realpath (f) สำหรับ f ใน glob .glob ("*.xml" ) ]

>>> ข้อมูลเมตา = [ (f, os .stat (f) ) สำหรับ f ใน glob .glob ("*test*.py" ) ]

>>> ข้อมูลเมตา[ 0 ]
("alphameticstest.py" , nt.stat_result (st_mode= 33206 , st_ino= 0 , st_dev= 0 ,
st_nlink = 0, st_uid = 0, st_gid = 0, st_size = 2509, st_atime = 1247520344
st_mtime = 1247520344, st_ctime = 1247520344))

>>> metadata_dict = ( f:os .stat (f) สำหรับ f ใน glob .glob ("*test*.py" ) )

>>> ประเภท (metadata_dict)
< class "dict" >

>>> รายการ (metadata_dict.keys())
[ "romantest8.py" , "pluraltest1.py" , "pluraltest2.py" , "pluraltest5.py" ,
"pluraltest6.py", "romantest7.py", "romantest10.py", "romantest4.py",
"romantest9.py", "พหูพจน์test3.py", "romantest1.py", "romantest2.py",
"romantest3.py", "romantest5.py", "romantest6.py", "alphameticstest.py",
"pluraltest4.py" ]

>>> metadata_dict["alphameticstest.py"] .st_size
2509

เช่นเดียวกับในตัวสร้างรายการ คุณสามารถรวมความคิดไว้ในตัวสร้างพจนานุกรมได้ ถ้าเพื่อกรองลำดับอินพุตสำหรับการประมวลผลเพิ่มเติม ซึ่งคำนวณสำหรับองค์ประกอบสกิน

>>> นำเข้าระบบปฏิบัติการ , glob , ขนาดมนุษย์

คุณรู้ความแตกต่างระหว่างไวยากรณ์ต่อไปนี้หรือไม่?


(x สำหรับ x อยู่ในช่วง (5))
สิ่งอันดับ (ช่วง (5))

มาตรวจสอบกัน

4 ข้อเท็จจริงเกี่ยวกับรายการ

ขั้นแรก วอดกุกสั้น ๆ บนแผ่นงาน (อาร์เรย์ในภาษาอื่น)

  • list คือประเภทของข้อมูลที่สามารถแสดงเป็นกลุ่มขององค์ประกอบได้
  • รายการง่ายๆ มีลักษณะดังนี้ –
แสดงรายการเหตุการณ์ประเภทข้อมูลที่เป็นไปได้ทั้งหมดและการรวมกันของข้อมูลเป็นส่วนประกอบ:
  • >>> a = 12 >>> b = "นี่คือข้อความ" >>> my_list = , (1, 2, 3), a] >>> print(my_list) , (1, 2, 3), 12]
รายการสามารถจัดทำดัชนีได้
  • คุณสามารถปฏิเสธการเข้าถึงองค์ประกอบเดียวหรือกลุ่มองค์ประกอบใด ๆ โดยใช้ไวยากรณ์:

& >>> a = ["สีแดง", "สีเขียว", "สีน้ำเงิน"] >>> พิมพ์(a) สีแดง

เนื่องจากมันไม่ง่ายเหมือนการเขียนโปรแกรมฟังก์ชันใน Python ดังนั้น list comprehension จึงช่วยให้คุณสร้างรายการที่มี for loop โดยใช้โค้ดน้อยกว่าได้

ลองดูตัวอย่างต่อไปนี้

คุณสร้างรายการโดยใช้ for loop และ a พิสัย()การทำงาน.

& >>> my_list = >>> สำหรับ x อยู่ในช่วง (10): ... my_list.append(x * 2) ... >>> พิมพ์(my_list)

และนี่คือวิธีการดำเนินการตามตัวอย่างก่อนหน้านี้โดยใช้รายการความเข้าใจ:

>>> comp_list = >>> พิมพ์ (comp_list)

ชี้ด้านล่างแต่อยู่เบื้องหลังถ้อยคำเพื่อคิดเกี่ยวกับไวยากรณ์ ผลลัพธ์เดียวกันอาจทำได้เพียงแค่ใช้รายการ (ช่วง (0, 19, 2))

>>> comp_list = >>> พิมพ์ (comp_list)

การทำงาน. อย่างไรก็ตาม คุณสามารถเลือกการเปลี่ยนแปลงแบบพับได้เพิ่มเติมในส่วนแรกของการคำนวณ หรือซูมเข้าเพื่อกรองแผ่นงาน

บางสิ่งเช่นนี้:

ตัวเลือกที่ชัดเจนอื่นๆ พร้อมใช้งานสำหรับความเข้าใจรายการเพื่อรวมหลายรายการและสร้างรายการ

พูดตามตรง ไวยากรณ์ดูเหมือนจะซับซ้อน

วิธีนี้สามารถช่วยให้คุณคิดถึงลำดับภายนอกและภายในได้

นี่หมายถึงพลังของความเข้าใจรายการ หากคุณสร้างรายการเพื่อรวม 2 รายการที่มีอยู่

>>> nums = >>> ตัวอักษร = ["A", "B", "C", "D", "E"] >>> nums_letters = [ สำหรับ n ใน nums สำหรับ l ในตัวอักษร] #รายการความเข้าใจ รวมสองรายการง่ายๆ ให้เป็นรายการที่ซับซ้อน >>> พิมพ์(nums_letters) >>> พิมพ์(nums_letters) [, , , , , , , , , , , , , , , , , , , , , , , , , , , ] >>> ลองใช้ดูหรือข้อความถูกต้องเพื่อบอกว่าวัตถุสตริง

>>> iter_string = "ข้อความบางส่วน" >>> comp_list = >>> พิมพ์(comp_list) ["s", "o", "m", "e", "t", "e", "x", "ที"]

ความเข้าใจไม่ได้จำกัดอยู่เพียงรายการ

คุณสามารถสร้างคำสั่งและกำหนดความเข้าใจได้เช่นกัน

>>> dict_comp = (x:chr(65+x) สำหรับ x อยู่ในช่วง (1, 11)) >>> type(dict_comp) >>> พิมพ์(dict_comp) (1: "B", 2: "C", 3: "D", 4: "E", 5: "F", 6: "G", 7: "H", 8: "I", 9: "J", 10: "K") >>> set_comp = (x** 3 สำหรับ x อยู่ในช่วง (10) ถ้า x % 2 == 0)>>> พิมพ์(set_comp) (0, 8, 64, 512, 216) ความแตกต่างระหว่าง Iterable และ Iteratorคุณจะคุ้นเคยกับแนวคิดของตัวสร้างเมื่อคุณนึกถึงตัววนซ้ำและตัววนซ้ำ

>>> hasattr(str, "__iter__") จริง >>> hasattr(bool, "__iter__") เท็จ

โปรโตคอลตัววนซ้ำจะถูกนำไปใช้เมื่อใดก็ตามที่คุณวนซ้ำลำดับข้อมูล

  • สำหรับก้น หากคุณเป็นนักวิโคริสต์สำหรับทางออก สิ่งที่มองเห็นได้ กระแทกไปที่พื้นหลัง: >>> พิมพ์(dict_comp) (1: "B", 2: "C", 3: "D", 4: "E", 5: "F", 6: "G", 7: "H", 8: "I", 9: "J", 10: "K") >>> set_comp = (x** 3 สำหรับ x อยู่ในช่วง (10) ถ้า x % 2 == 0)อันดับแรก
  • () วิธีการถูกเรียกบนวัตถุเพื่อแปลงเป็นวัตถุตัววนซ้ำต่อไป
  • () วิธีการนี้เรียกว่าวัตถุตัววนซ้ำเพื่อรับองค์ประกอบถัดไปของลำดับหยุดทำซ้ำ
ข้อยกเว้นเกิดขึ้นเมื่อไม่มีองค์ประกอบเหลือให้โทร >>> simple_list = >>> my_iterator = iter (simple_list) >>> พิมพ์ (my_iterator) >>> ถัดไป (my_iterator) 1 >>> ถัดไป (my_iterator) 2 >>> ถัดไป (my_iterator) 3 >>> ถัดไป (my_iterator) Traceback (การโทรล่าสุดครั้งล่าสุด): ", บรรทัดที่ 1, ใน

หยุดทำซ้ำ

ตัวสร้างนิพจน์

ใน Python ตัวสร้างจะให้วิธีที่สะดวกในการใช้โปรโตคอลตัววนซ้ำ

ตัวสร้างเป็นตัวสร้างแบบวนซ้ำได้โดยใช้ฟังก์ชันพร้อมคำสั่ง ayield

เหตุผลหลักสำหรับเครื่องกำเนิดคือการประเมินองค์ประกอบเพื่อการใช้งาน

อย่างที่คุณพูด ฟังก์ชันคำสั่ง return ปกติ ฟังก์ชันจะถูกยกเลิกเมื่อใดก็ตามที่พบคำสั่ง return

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

>>> def my_gen(): ... สำหรับ x อยู่ในช่วง (5): ... ให้ผลตอบแทน x นิพจน์ตัวสร้างช่วยให้สร้างตัวสร้างได้ทันทีโดยไม่ต้องใช้คีย์เวิร์ดที่ให้ผลตอบแทน

อย่างไรก็ตาม มันไม่ได้แชร์พลังทั้งหมดของเครื่องกำเนิดการสร้างสรรค์กับฟังก์ชันผลผลิต ไวยากรณ์และแนวคิดคล้ายกับรายการความเข้าใจ:>>> gen_exp = (x ** 2 สำหรับ x อยู่ในช่วง (10) ถ้า x % 2 == 0) >>> สำหรับ x ใน gen_exp: ... พิมพ์ (x) 0 4 16 36 64

สำหรับเงื่อนไขทางไวยากรณ์ เฉพาะความแตกต่างเท่านั้นที่คุณใช้วงเล็บแทนวงเล็บเหลี่ยม พิสัย()หากคุณต้องการทราบว่าคุณต้องการข้อมูลประเภทใด คุณสามารถใช้รายการความเข้าใจและนิพจน์ตัวสร้างที่แตกต่างกันได้ พิสัย()>>> list_comp = >>> gen_exp = (x ** 2 สำหรับ x อยู่ในช่วง (10) ถ้า x % 2 == 0) >>> พิมพ์ (list_comp) >>> พิมพ์ (gen_exp)

ที่ 0x7f600131c410>

เราเห็นความแตกต่างนี้ได้เนื่องจากในขณะที่ `list` สร้าง Python จะสงวนหน่วยความจำสำหรับรายการทั้งหมดและคำนวณทันที

สำหรับตัวเลือกตัวสร้าง เราเพียงแค่ลบ “อัลกอริทึม”/ “คำแนะนำ” วิธีการคำนวณที่เก็บ Python นั้นออก

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

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