Questions tagged «chunking»

8
在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 编辑 string.scan解决方案大约需要60秒才能将512k砍成1k块10000次,而原始的基于切片的解决方案只需要2.4秒。
87 ruby  string  chunking 

15
如何在恒定大小的块中拆分可迭代
可能重复: 如何在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) == n: yield current_batch current_batch = [] …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.