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

9
อะไรคือวิธีที่ดีที่สุดในการตัดสตริงเป็นชิ้น ๆ ตามความยาวที่กำหนดใน Ruby?
ฉันกำลังมองหาวิธีที่สวยงามและมีประสิทธิภาพในการรวมสตริงเป็นสตริงย่อยที่มีความยาวที่กำหนดใน Ruby จนถึงตอนนี้สิ่งที่ดีที่สุดที่ฉันสามารถทำได้คือ: def chunk(string, size) (0..(string.length-1)/size).map{|i|string[i*size,size]} end >> chunk("abcdef",3) => ["abc", "def"] >> chunk("abcde",3) => ["abc", "de"] >> chunk("abc",3) => ["abc"] >> chunk("ab",3) => ["ab"] >> chunk("",3) => [] คุณอาจต้องการchunk("", n)ที่จะกลับมาแทน[""] []ในกรณีนี้ให้เพิ่มสิ่งนี้เป็นบรรทัดแรกของวิธีการ: return [""] if string.empty? คุณจะแนะนำวิธีแก้ปัญหาที่ดีกว่านี้หรือไม่? แก้ไข ขอบคุณ Jeremy Ruten สำหรับโซลูชันที่หรูหราและมีประสิทธิภาพนี้: [แก้ไข: ไม่มีประสิทธิภาพ!] def chunk(string, size) string.scan(/.{1,#{size}}/) end …
89 ruby  string  chunking 

17
วิธีแบ่งส่วนที่ทำซ้ำได้ในขนาดคงที่
เป็นไปได้ที่ซ้ำกัน: คุณแบ่งรายการออกเป็นชิ้นขนาดเท่า ๆ กันใน Python ได้อย่างไร? ฉันประหลาดใจที่ไม่พบฟังก์ชัน "แบตช์" ที่จะใช้เป็นอินพุตที่สามารถทำซ้ำได้ ตัวอย่างเช่น: for i in batch(range(0,10), 1): print i [0] [1] ... [9] หรือ: for i in batch(range(0,10), 3): print i [0,1,2] [3,4,5] [6,7,8] [9] ตอนนี้ฉันเขียนสิ่งที่ฉันคิดว่าเป็นเครื่องกำเนิดไฟฟ้าที่ค่อนข้างง่าย: def batch(iterable, n = 1): current_batch = [] for item in iterable: current_batch.append(item) if len(current_batch) == …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.