(关于Radix Sort)我在理解教授的代码时遇到了麻烦

时间:2018-12-28 09:25:57

标签: python

我不明白这行是什么意思:

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)

4 个答案:

答案 0 :(得分:1)

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

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

输出:

[[], [], []]

答案 1 :(得分:0)

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

它正在创建一个空列表的列表,称为队列。队列是一个包含k个空列表的列表

答案 2 :(得分:0)

_只是一个变量,例如i或j。您要使用下划线来表明它是一个一次性的变量,您将不再使用。

另请参阅What is the purpose of the single underscore "_" variable in Python?

答案 3 :(得分:0)

这是python的列表理解,是

的缩短代码
queue = []
for _ in range(k):
    queue.append(list())

下划线_是python变量,用于表示最后访问的变量,通常用作脚本代码不希望引用的一次性变量