按字典顺序排序?

2024-05-23 17:51:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在与Photobucket API集成,我在他们的api docs中发现了这一点:

"Sort the parameters by name lexographically [sic] (byte ordering, the standard sorting, not natural or case insensitive). If the parameters have the same name, then sort by the value."

那是什么意思?我该如何按词典分类?字节排序?

到目前为止,他们的其他文档还不错,但(对我来说)这一行似乎还有进一步的解释。不幸的是没有。

不管怎样,我正在用Python编写应用程序(它最终将成为Django应用程序),以防您希望为我推荐处理这种排序的特定模块


Tags: thenameapi应用程序docsby排序byte
3条回答

这类似于Facebook API——在生成签名散列之前,需要规范化查询字符串。

您可能有一个参数字典,例如:

params = {
  'consumer_key': "....",
  'consumer_secret': "....",
  'timestamp': ...,
  ...
}

创建查询字符串,如下所示:

urllib.urlencode(sorted(params.items()))

params.items()将字典的键和值作为列表元组返回,sorted()对列表进行排序,并在转义时将它们连接到单个字符串中。

这个词应该是“词典学”

http://www.thefreedictionary.com/Lexicographic

字典顺序。使用字符串中出现的字母。

正如他们所建议的,不要把大小写叠在一起。只需使用Python内置的list.sort()方法。

我认为这里的词典是ascii排序的“别名”?

Lexicographic          Natural  
z1.doc                  z1.doc    
z10.doc                 z2.doc    
z100.doc                z3.doc    
z101.doc                z4.doc    
z102.doc                z5.doc    
z11.doc                 z6.doc    
z12.doc                 z7.doc    
z13.doc                 z8.doc    
z14.doc                 z9.doc     
z15.doc                z10.doc    
z16.doc                z11.doc    
z17.doc                z12.doc    
z18.doc                z13.doc     
z19.doc                z14.doc     
z2.doc                 z15.doc    
z20.doc                z16.doc    
z3.doc                 z17.doc    
z4.doc                 z18.doc    
z5.doc                 z19.doc    
z6.doc                 z20.doc    
z7.doc                z100.doc    
z8.doc                z101.doc    
z9.doc                z102.doc    

相关问题 更多 >