reddit网址中的7n5lu
是什么
http://www.reddit.com/r/reddit.com/comments/7n5lu/man_can_fly_if_you_watch_one_video_in_2
它是如何生成的?
更新: @Gerald,谢谢你的代码。我最初认为这是对id的一些混淆。 但是,它只是从整数转换为更紧凑的表示。我在想,为什么要这样做?为什么不使用原始整数!!
>>> to36(4000)
'334'
>>> to36(4001)
'335'
答案 0 :(得分:28)
reddit源代码is available!以下是我发现的用于生成该字符串的内容:
def to_base(q, alphabet):
if q < 0: raise ValueError, "must supply a positive integer"
l = len(alphabet)
converted = []
while q != 0:
q, r = divmod(q, l)
converted.insert(0, alphabet[r])
return "".join(converted) or '0'
def to36(q):
return to_base(q, '0123456789abcdefghijklmnopqrstuvwxyz')
和其他地方,在“链接”类下:
@property
def _id36(self):
return to36(self._id)
答案 1 :(得分:0)
这看起来像是线程的唯一ID。它很可能用于在数据库中找到线程。
答案 2 :(得分:0)
它是一个整数,以36为底。id顺序生成。例如,在ID 89
后面的注释就是ID 8a
,依此类推。因此,您不需要URL中的任何其他信息。
理论上,评论,帖子,消息,用户和子目录可以具有相同的ID并递增。您可以通过它们的“全名”(它们是事物的类型),下划线然后是下划线来区分它们。
t1
是评论,t2
是用户,t3
是提交,t4
是消息,t5
是子提示,{{ 1}}是奖励,t6
是主持人操作,ModAction
是modmail对话,等等。
有关更多信息,请参见the API documentation。
答案 3 :(得分:-1)
小记。
这个例子还不够,但通常会附加到列表
a = []
for i in range(NNN): a.append(i)
a.reverse()
比插入头部更有效率。
a = []
for i in range(NNN): a.insert(0,i)