首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将Python转换为list,继续获取TypeError:'list‘对象不可调用

将Python转换为list,继续获取TypeError:'list‘对象不可调用
EN

Stack Overflow用户
提问于 2015-06-20 03:14:00
回答 1查看 5.1K关注 0票数 1

我正试图编写一个程序,根据随机数将项目添加到列表中。程序的一部分可能会滚动额外的项目,但是所有重复的项目都应该重新命名。我的问题是,当我尝试使用我能够找到的方法(比较列表和测试dups的列表集,然后保存到列表中)时,我总是得到TypeError:' list‘对象是不可调用的。令人困惑的是,当我用我设置的简单列表测试它时,它工作得很好。

这是我的密码

代码语言:javascript
运行
复制
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()

有人能帮我找出我为什么一直犯这个错误吗?我花了好几个小时在网上搜索,但没有成功。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-20 03:16:48

问题已经解决了-

代码语言:javascript
运行
复制
list = ['1', '2', '3', '4', '5']

您正在用列表覆盖内置的list函数,在此分配之后,如果您试图调用list(),它将导致错误,因为它将尝试访问您定义的列表并调用它。

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

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30949890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档