Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 优雅的数据分块方式_Python_String - Fatal编程技术网

Python 优雅的数据分块方式

Python 优雅的数据分块方式,python,string,Python,String,假设我想将一些数据分成60个字符的部分,并将它们存储在散列中。我有以下解决方案,但对我来说似乎有点脏:(因为迭代和不断的重新分配) 你能想出一个更好的方法来处理这个问题吗?虽然与我认为这仍然是一个有效的问题非常相似,但将包含对前一个问题的部分答案: def hashing(header_hash, signature, hash_size): for index, i in enumerate(xrange(len(signature), hash_size)):

假设我想将一些数据分成60个字符的部分,并将它们存储在散列中。我有以下解决方案,但对我来说似乎有点脏:(因为迭代和不断的重新分配)


你能想出一个更好的方法来处理这个问题吗?

虽然与我认为这仍然是一个有效的问题非常相似,但将包含对前一个问题的部分答案:

def hashing(header_hash, signature, hash_size):
     for index, i in enumerate(xrange(len(signature), hash_size)):
          header_hash['Some-Authorization-%s' % index] = signature[i:i+hash_size]

这将是我的答案,通过查看
itertools
函数,我怀疑在分组后重新加入这些函数会否定使用itertools的任何好处。

我相信这与我建议使用
grouper()
方法解决这一问题是一样的。此外,Python中的术语“hash”用于表示散列函数,而不是散列映射。称之为
dict
比较容易混淆。此外,由于您的密钥都是
int
s的常量转换,您可能应该使用
列表
而不是
dict
@Michael,这实际上是有意义的,因为header\u hash实际上是分割为http头字段的加密hash(后来重命名,因为实际上不清楚:)。我不打算使用破损的匈牙利python符号;)我确实喜欢这个。。。enumerate(xrange(…)在某种程度上看起来可能更简单,但它比我的while要好:)
def hashing(header_hash, signature, hash_size):
     for index, i in enumerate(xrange(len(signature), hash_size)):
          header_hash['Some-Authorization-%s' % index] = signature[i:i+hash_size]