คำถามติดแท็ก chunks

30
คุณจะแบ่งรายการออกเป็นกลุ่มขนาดเท่า ๆ กันได้อย่างไร
ฉันมีรายการความยาวโดยพลการและฉันจำเป็นต้องแยกมันออกเป็นชิ้นขนาดเท่ากันและทำงานกับมัน มีวิธีที่ชัดเจนในการทำเช่นรักษาตัวนับและสองรายการและเมื่อรายการที่สองเติมให้เพิ่มลงในรายการแรกและล้างรายการที่สองสำหรับรอบถัดไปของข้อมูล แต่อาจมีราคาแพงมาก ฉันสงสัยว่าใครมีวิธีแก้ปัญหาที่ดีสำหรับรายการที่มีความยาวเช่นใช้เครื่องกำเนิดไฟฟ้า ฉันกำลังมองหาบางสิ่งที่มีประโยชน์itertoolsแต่ฉันไม่พบสิ่งใดที่มีประโยชน์ชัดเจน แต่อาจจะพลาดได้ คำถามที่เกี่ยวข้อง: วิธี "pythonic" ที่มากที่สุดในการวนซ้ำรายการในกลุ่มคืออะไร
2264 python  list  split  chunks 

30
วิธี "pythonic" มากที่สุดในการวนซ้ำรายการในกลุ่มคืออะไร?
ฉันมีสคริปต์ Python ซึ่งใช้เป็นรายการของจำนวนเต็มซึ่งฉันต้องทำงานกับจำนวนเต็มสี่ตัวในแต่ละครั้ง น่าเสียดายที่ฉันไม่สามารถควบคุมอินพุตได้หรือฉันจะให้มันส่งผ่านเป็นรายการของ tuples สี่องค์ประกอบ ขณะนี้ฉันกำลังทำซ้ำด้วยวิธีนี้: for i in xrange(0, len(ints), 4): # dummy op for example code foo += ints[i] * ints[i + 1] + ints[i + 2] * ints[i + 3] ดูเหมือนว่า "C-think" มากซึ่งทำให้ฉันสงสัยว่ามีวิธีการรับมือกับสถานการณ์นี้มากขึ้น รายการจะถูกยกเลิกหลังจากทำซ้ำดังนั้นจึงไม่จำเป็นต้องเก็บรักษาไว้ บางทีสิ่งนี้จะดีกว่าไหม? while ints: foo += ints[0] * ints[1] + ints[2] * ints[3] …

15
ฉันจะอ่านไฟล์ csv ขนาดใหญ่ที่มีนุ่นได้อย่างไร
ฉันพยายามอ่านไฟล์ csv ขนาดใหญ่ (aprox. 6 GB) ในนุ่นและฉันได้รับข้อผิดพลาดของหน่วยความจำ: MemoryError Traceback (most recent call last) <ipython-input-58-67a72687871b> in <module>() ----> 1 data=pd.read_csv('aphro.csv',sep=';') ... MemoryError: ความช่วยเหลือเกี่ยวกับเรื่องนี้?
194 python  pandas  csv  memory  chunks 

30
แยกรายการออกเป็นส่วนต่าง ๆ ที่มีความยาวเท่ากันโดยประมาณ
เป็นวิธีที่ดีที่สุดในการแบ่งรายการออกเป็นส่วนเท่าๆกันคืออะไร ตัวอย่างเช่นหากรายการมี 7 องค์ประกอบและแบ่งออกเป็น 2 ส่วนเราต้องการรับ 3 องค์ประกอบในส่วนหนึ่งส่วนอื่น ๆ ควรมีองค์ประกอบ 4 รายการ ฉันกำลังมองหาบางอย่างeven_split(L, n)ที่แตกLออกเป็นnส่วน ๆ def chunks(L, n): """ Yield successive n-sized chunks from L. """ for i in range(0, len(L), n): yield L[i:i+n] รหัสข้างต้นให้ชิ้นส่วนจำนวน 3 ชิ้นแทนที่จะเป็น 3 ชิ้น ฉันสามารถแปลง (ทำซ้ำสิ่งนี้และรับองค์ประกอบแรกของแต่ละคอลัมน์เรียกส่วนนั้นจากนั้นนำส่วนที่สองมาใส่ในส่วนที่สอง ฯลฯ ) แต่นั่นเป็นการทำลายการเรียงลำดับของรายการ
150 python  list  chunks 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.