【问题标题】:Attribute Error: 'list' object has no attribute 'values' and TypeError: 'str' object does not support item assignment属性错误:“list”对象没有属性“values”和 TypeError:“str”对象不支持项目分配
【发布时间】:2018-11-03 06:20:20
【问题描述】:

我正在尝试执行以下操作:

第 1 步)让 Player1 从“X”或“O”中进行选择。
第 2 步)一旦他们在“X”或“O”之间做出选择,那么他们必须选择他们选择的数字。
第 3 步)创建一个字典,存储与第 2 步中的数字相关的“X”或“O”。
步骤 4) 以列表的形式打印该字典的值。

当我尝试使用 g.values() 时出现错误:

属性错误:“列表”对象没有属性“值”

之前使用相同的代码,它正在制作字典 g 但我开始收到错误:

TypeError: 'str' 对象不支持项目分配

这是我的代码:

Player_1_Selection = input("Player_1 choose your marker from 'X' or 'O'")
Player_1_Selection = Player_1_Selection.upper()
if Player_1_Selection == "X":
   Player_2_Selection = "O"
else:
   Player_2_Selection = "X"
print (Player_1_Selection, Player_2_Selection)
g = {}
for i in range (0,5):
    for i in range(0,1):
        Selection_i = input ("Player 1 Select your place: ")
        a = (Selection_i)
        g[a] = Player_1_Selection
    for i in range(0,1):
        Selection_i = input ("Player 2 Select your place: ")
        g = (Selection_i)
        g[a] = Player_2_Selection
g = sorted (g)
print(g)
print (g.values())`

【问题讨论】:

    标签: python-3.x


    【解决方案1】:

    g = sorted(g) 将从字典 gkeys 中创建一个 list

    不过,我还没有真正理解你的游戏规则,所以我不确定你真正想要的是什么。也许g = sorted(g.values())

    【讨论】:

    • 仅在初始阶段。我只想在五个回合中一个接一个地捕捉两个玩家的响应,因此 for 循环运行 5 次迭代。 g.value() 不起作用,并给我一个“属性错误:'list' 对象没有属性'values'”的结果。我尝试在一段时间后运行代码,现在它在我分配 a = Selection_i 的代码行中显示“TypeError:'str' object does not support item assignment”。我只是想制作一个为玩家选择保留价值的字典。{'1': X, '2':O, '3':X, '4':O, '5':X, '6': X, '7':O, '8':X, '9':O, '10':X}
    猜你喜欢
    • 2021-12-14
    • 1970-01-01
    • 2016-04-07
    • 2021-02-16
    • 1970-01-01
    • 1970-01-01
    • 2021-07-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多