Python转换为列表,继续获取TypeError:';列表';对象不可调用

Python转换为列表,继续获取TypeError:';列表';对象不可调用,python,list,set,Python,List,Set,我正在尝试编写一个程序,根据随机数将项目添加到列表中。程序的一部分可能会滚动其他项目,但应重新滚动所有重复的项目。我的问题是,当我尝试使用我能够找到的方法(将列表与列表集进行比较以测试DUP,然后将该集保存到列表中)执行此操作时,我不断得到TypeError:“list”对象不可调用。令人困惑的是,当我用我设置的简单列表来测试它时,它工作得很好 这是我的密码 from random import randint # Dice roller function def roll_dice(dice

我正在尝试编写一个程序,根据随机数将项目添加到列表中。程序的一部分可能会滚动其他项目,但应重新滚动所有重复的项目。我的问题是,当我尝试使用我能够找到的方法(将列表与列表集进行比较以测试DUP,然后将该集保存到列表中)执行此操作时,我不断得到TypeError:“list”对象不可调用。令人困惑的是,当我用我设置的简单列表来测试它时,它工作得很好

这是我的密码

from random import randint

# Dice roller function
def roll_dice(dice, sides, bonus):
    count = 0
    roll = 0
    for count in range(dice):
        roll += randint(1, sides)
    roll += bonus
    return roll

list = ['1', '2', '3', '4', '5']
print_list = ''
for x in range(0, len(list)-1):
    print_list += ' ' + list[x]
print print_list[1:]

# Minor special armor ability roller
def armor_special_ability():
    reroll = 1
    ability = []
    abil_list = ''
    while reroll > 0:
        result = int(raw_input('Roll:'))#roll_dice(1,100,0)
        if result <= 25:
            ability.append('Glamered')
        elif result <= 32:
            ability.append('Light Fortification')
        elif result <= 52:
            ability.append('Slick')
        elif result <= 72:
            ability.append('Shadow')
        elif result <= 92:
            ability.append('Silent Moves')
        elif result <= 96:
            ability.append('Spell Resistance (13)')
        elif result <= 97:
            ability.append('Improved Slick')
        elif result <= 98:
            ability.append('Improved Shadow')
        elif result <= 99:
            ability.append('Improved Silent Moves')
        elif result <= 100:
            reroll += 2
        reroll -= 1
        if len(ability) > len(set(ability)):
            reroll += (len(ability) - len(set(ability)))
            ability = list(set(ability))
    return ability

print armor_special_ability()
来自随机导入randint
#骰子辊功能
def掷骰子(骰子、侧面、奖金):
计数=0
滚动=0
对于范围内的计数(骰子):
滚转+=randint(1,侧面)
掷骰+=奖金
回程辊
列表=['1','2','3','4','5']
打印列表=“”
对于范围(0,长度(列表)-1)内的x:
打印列表+=''+列表[x]
打印打印列表[1:]
#小型特种装甲辊
def装甲\特殊\能力():
重新滚动=1
能力=[]
能力列表=“”
当重新滚动>0时:
结果=整数(原始输入('Roll:'))#掷骰子(1100,0)
如果结果则问题是一致的-

list = ['1', '2', '3', '4', '5']
您正在使用列表覆盖内置的
列表
函数,在此分配之后,如果您尝试调用
列表()
,则会导致错误,因为它将尝试访问您定义的列表并调用它

请使用其他名称,切勿将
列表
用作变量名称(除非您确实想覆盖
列表
内置函数),因为它会覆盖内置函数。

问题是一致的-

list = ['1', '2', '3', '4', '5']
您正在使用列表覆盖内置的
列表
函数,在此分配之后,如果您尝试调用
列表()
,则会导致错误,因为它将尝试访问您定义的列表并调用它


使用不同的名称,不要使用
list
作为变量的名称(除非你真的想覆盖
list
内置函数),因为它会覆盖内置函数。

你可以通过键入
dir(\uuuuu内置函数)
看到一个列表。
我实际上刚刚意识到了这一点,并且正在登录以关闭这篇文章。这是因为我没有注释掉以前测试过的代码,因为“这与我正在做的新事情无关”。这也是我愚蠢地使用列表作为变量所得到的^_^您可以通过键入
dir(\uuu builtins\uuuuu)
查看列表。实际上,我刚刚意识到这一点,正在登录以关闭此帖子。这是因为我没有注释掉以前测试过的代码,因为“这与我正在做的新事情无关”。这也是我愚蠢地使用列表作为变量所得到的^_^