[]和列表之间的差异不会运行程序

时间:2017-09-13 07:56:55

标签: python list range

如果我使用[(range(1, num +1)]而不是list(range(1, num+1)),那么在listRange部分中,该程序无法正常工作?

num = int(input("Please choose a number to divide: "))

listRange = list(range(1,num+1))

divisorList = []

for number in listRange:
    if num % number == 0:
        divisorList.append(number)

print(divisorList)

2 个答案:

答案 0 :(得分:1)

在Python 3中,range()返回一个范围对象。

使用list(...),您可以将范围对象(可迭代)转换为列表。 使用[],您可以将范围对象包装在列表中,而无需迭代内容。

print([(range(1))]) # [range(0, 1)]
print(list(range(1))) # [0]

答案 1 :(得分:0)

作为附加选项,您可以使用星号/星号(有些称为“splat”)运算符“解压缩”范围对象

[*range(7)]
Out[213]: [0, 1, 2, 3, 4, 5, 6]