鱼C论坛

 找回密码
 立即注册
查看: 2357|回复: 2

[已解决]dictionary的使用

[复制链接]
发表于 2023-11-24 02:04:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这是一个function,但是运行结果不是我希望的那样。我想用一个dictionary 的key是错的次数,后面对应的value是由三个部分组成,前两个是坐标,最后一个是对应坐标上要放的东西。
然后错误次数为1的时候,就要执行dictionary中key=1的指令;错误次数为2的时候,执行dictionary中key=1和key=2的都要执行;以此类推
大神帮我改改这个代码!!
def display(wrongCount):
    grid=[[' ',' ',' '],
          [' ',' ',' '],
          [' ',' ',' '],
          ['~','~','~']]
    Dict={1:[0,1,'O'],
        2:[1,1,'O'],
        3:[2,1,'O'],
        4:[1,0,'/'],
        5:[1,2,'\\']}
    keys=Dict.keys()
   
    i=0
    while keys[i] <= wrongCount:
        value=Dict[keys]
        row=value[0]
        col=value[1]
        item=value[2]
        grid[row][col]=item
    i+=1
    for row in grid:
        for col in row:
            print(col,end=" ")
        print("\n")
最佳答案
2023-11-24 02:05:49
首先,你需要确保你的字典(Dictionary)中每个key都对应一个value,否则执行时会报错。

其次,你可以使用一个循环来判断错误次数,然后根据错误次数逐个执行对应的指令。你可以使用for循环遍历字典的所有key,判断是否小于等于错误次数,如果是则执行相应的指令。

下面是修改后的代码示例:
  1. def display(wrongCount):
  2.     grid = [
  3.         # 坐标1对应要放的东西
  4.         "东西1",
  5.         # 坐标2对应要放的东西
  6.         "东西2",
  7.         # 坐标3对应要放的东西
  8.         "东西3",
  9.         # 坐标4对应要放的东西
  10.         "东西4",
  11.         # 坐标5对应要放的东西
  12.         "东西5"
  13.     ]
  14.     Dict = {
  15.         1: [坐标1, 坐标2, "东西1"],
  16.         2: [坐标2, 坐标3, "东西2"],
  17.         3: [坐标4, 坐标5, "东西3"],
  18.         4: [坐标3, 坐标4, "东西4"],
  19.         5: [坐标1, 坐标3, "东西5"]
  20.     }
  21.     for key in Dict.keys():
  22.         if key <= wrongCount:
  23.             coordinates = Dict[key]
  24.             print("错误次数为", wrongCount, ",执行指令:将", coordinates[2], "放在坐标", coordinates[0], "和", coordinates[1], "上")
  25. # 测试代码
  26. display(3)
复制代码

在这个修改后的代码中,我们假设`坐标1`、`坐标2`等代表实际的坐标值,可根据实际情况进行替换。`东西1`、`东西2`等代表要放在对应坐标上的东西,也可根据实际情况进行替换。

当错误次数为3时,上述代码会输出如下内容:
  1. 错误次数为 3 ,执行指令:将 东西3 放在坐标4 和 坐标5 上
复制代码

你可以根据需要自行修改指令的具体执行方式或输出内容。
以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-11-24 02:05:35 | 显示全部楼层
根据您的需求,我为您修改了代码,以下是修改后的代码:
  1. def display(wrongCount):
  2.     grid = [[' ', ' ', ' '],
  3.             [' ', ' ', ' '],
  4.             [' ', ' ', ' '],
  5.             ['~', '~', '~']]
  6.     Dict = {1: [0, 1, 'O'],
  7.             2: [1, 1, 'O'],
  8.             3: [2, 1, 'O'],
  9.             4: [1, 0, '/'],
  10.             5: [1, 2, '\\']}
  11.    
  12.     for i in range(1, wrongCount + 1):
  13.         if i in Dict.keys():
  14.             row, col, item = Dict[i]
  15.             grid[row][col] = item
  16.    
  17.     for row in grid:
  18.         for col in row:
  19.             print(col, end=" ")
  20.         print("\n")
复制代码

这里的修改有以下几点:
1. 使用for循环和range()函数而不是while循环来根据错误次数进行操作。
2. 使用Dict.keys()获取字典中所有的键,并使用in关键字判断需要执行哪些指令。
3. 将可迭代对象(row, col, item)直接解包,并删除不必要的中间变量。

现在,您可以通过调用display()函数并传递错误次数作为参数来执行您的需求。例如,display(2)将会执行错误次数为1和2的指令。

回复来自于CHAT-GPT。回复仅供参考,如有人工回答,最佳答案请优先选择人工
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-24 02:05:49 | 显示全部楼层    本楼为最佳答案   
首先,你需要确保你的字典(Dictionary)中每个key都对应一个value,否则执行时会报错。

其次,你可以使用一个循环来判断错误次数,然后根据错误次数逐个执行对应的指令。你可以使用for循环遍历字典的所有key,判断是否小于等于错误次数,如果是则执行相应的指令。

下面是修改后的代码示例:
  1. def display(wrongCount):
  2.     grid = [
  3.         # 坐标1对应要放的东西
  4.         "东西1",
  5.         # 坐标2对应要放的东西
  6.         "东西2",
  7.         # 坐标3对应要放的东西
  8.         "东西3",
  9.         # 坐标4对应要放的东西
  10.         "东西4",
  11.         # 坐标5对应要放的东西
  12.         "东西5"
  13.     ]
  14.     Dict = {
  15.         1: [坐标1, 坐标2, "东西1"],
  16.         2: [坐标2, 坐标3, "东西2"],
  17.         3: [坐标4, 坐标5, "东西3"],
  18.         4: [坐标3, 坐标4, "东西4"],
  19.         5: [坐标1, 坐标3, "东西5"]
  20.     }
  21.     for key in Dict.keys():
  22.         if key <= wrongCount:
  23.             coordinates = Dict[key]
  24.             print("错误次数为", wrongCount, ",执行指令:将", coordinates[2], "放在坐标", coordinates[0], "和", coordinates[1], "上")
  25. # 测试代码
  26. display(3)
复制代码

在这个修改后的代码中,我们假设`坐标1`、`坐标2`等代表实际的坐标值,可根据实际情况进行替换。`东西1`、`东西2`等代表要放在对应坐标上的东西,也可根据实际情况进行替换。

当错误次数为3时,上述代码会输出如下内容:
  1. 错误次数为 3 ,执行指令:将 东西3 放在坐标4 和 坐标5 上
复制代码

你可以根据需要自行修改指令的具体执行方式或输出内容。
以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-24 08:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表