首页 > 解决方案 > (关于基数排序)我无法理解教授的代码

问题描述

我无法理解这条线的含义:

queue = [list() for _ in range(k)]

这是完整的代码:

for i in range(1, maxlen+1):     
    queue = [list() for _ in range(k)]   
    for word in words:

        word += (maxlen - len(word)) * ' '

        if ord(word[-i]) >= 97:
            queue[ord(word[-i]) - (97)].append(word)
        else:
            queue[0].append(word)


    words = sum(queue, [])

for i in range(len(words)):
    words[i] = words[i].replace(" ", "")

print(words)

标签: python

解决方案


这只是创建一个k空列表的变量次数的列表,因此请参见示例:

a=3
print([list() for i in range(a)])

输出:

[[], [], []]

推荐阅读