使用lis检查列表中的随机位置

2024-07-04 17:31:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着让计算机猜一个随机字符在这个板上(它只是由一长串字符组成),然后检查随机字符是C,D,S或B字符串。你知道吗

from random import randint
Index=['A','B','C','D','E','F','G','H']
Row1=["Z","Z","Z","Z","Z","Z","Z","Z",]
Row2=["Z","Z","Z","Z","Z","Z","Z","Z",]
Row3=["Z","Z","Z","Z","Z","Z","Z","Z",]
Row4=["Z","Z","Z","Z","Z","Z","Z","Z",]
Row5=["Z","Z","Z","Z","Z","Z","Z","Z",]
Row6=["Z","Z","Z","Z","Z","Z","Z","Z",]
Row7=["Z","Z","Z","Z","Z","Z","Z","Z",]
Row8=["Z","Z","Z","Z","Z","Z","Z","Z",]
Board=[Row1,Row2,Row3,Row4,Row5,Row6,Row7,Row8]
RanRow=randint(1,8)
RanIndex=randint(0,7)
RanRow=RanRow-1
CompGuess=[RanRow,RanIndex]
if Board[CompGuess] ==("C") or Board[CompGuess] ==("D") or Board[CompGuess] ==("S") or Board[CompGuess] ==("B"):
#Do something
else:
#Do something

当我试图检查存储在计算机随机选择的位置中的字符时:

    if Board[CompGuess] ==("C") or Board[CompGuess] ==("D") or Board[CompGuess] ==("S") or Board[CompGuess] ==("B"):

我得到一个错误:

TypeError: list indices must be integers, not list

我相信Python不喜欢将列表作为索引,但是我可能弄错了。你知道吗


Tags: orboard计算机字符row1row2row3randint
3条回答

Python不允许将list作为列表索引器传递。你知道吗

您正在将一个整数列表作为索引传递给您的板。在寻找随机位置时,请尝试使用Board[RanRow][RanIndex]。你知道吗

使用优化的代码:

from random import randint

Index=['A','B','C','D','E','F','G','H']
Board=[["Z","Z","Z","Z","Z","Z","Z","Z",],
["Z","Z","Z","Z","Z","Z","Z","Z",],
["Z","Z","Z","Z","Z","Z","Z","Z",],
["Z","Z","Z","Z","Z","Z","Z","Z",],
["Z","Z","Z","Z","Z","Z","Z","Z",],
["Z","Z","Z","Z","Z","Z","Z","Z",],
["Z","Z","Z","Z","Z","Z","Z","Z",],
["Z","Z","Z","Z","Z","Z","Z","Z",]]
RanRow=randint(0, 7)
RanIndex=randint(0, 7)
CompGuess = Board[RanRow][RanIndex]

if CompGuess in ["C" , "D", "S", "B"]:
#Do something
else:
#Do something

相关问题 更多 >

    热门问题