鱼C论坛

 找回密码
 立即注册
查看: 1748|回复: 7

[已解决]求助大神!!

[复制链接]
发表于 2021-10-9 14:38:02 | 显示全部楼层 |阅读模式

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

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

x
创建一个88 x 88的随机整数矩阵(二维列表),然后匹配用户输入的整数是否与其中某元素相等,如果相等则打印其行号和列号。
代码如下:
  1. import random
  2.    
  3. # 创建并初始化二维列表
  4. matrix = []
  5. for i in range(88):
  6.     matrix.append([])
  7.     for j in range(88):
  8.         matrix[i].append(random.randint(0, 1024))
  9.    
  10. target = int(input("请输入一个代匹配的整数:"))
  11.    
  12. # 匹配用户输入的整数
  13. for i in range(88):
  14.     for j in range(88):
  15.         if matrix[i][j] == target:
  16.             print(i, j)
复制代码


我想问最后“匹配用户输入的整数”那一步,为什么还要加 for i in range(88):
                                                                                              for j in range(88):
为什么还要重复打一次?
最佳答案
2021-10-9 14:46:34
如果想合并为一个嵌套 for 循环的话
  1. import random

  2. target = int(input("请输入一个代匹配的整数:"))

  3. # 创建并初始化二维列表
  4. matrix = []
  5. for i in range(88):
  6.     matrix.append([])
  7.     for j in range(88):
  8.         matrix[i].append(random.randint(0, 1024))
  9.         if matrix[i][j] == target:
  10.             print(i, j)
复制代码


也就是边生成随机数,边检查和猜测值是否一致
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-10-9 14:44:32 | 显示全部楼层
因为你选择的是先创建完成整个二维列表(包括生成数字),然后输入你猜测的数值之后,再次循环整个二维列表,看匹配项
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-9 14:46:34 | 显示全部楼层    本楼为最佳答案   
如果想合并为一个嵌套 for 循环的话
  1. import random

  2. target = int(input("请输入一个代匹配的整数:"))

  3. # 创建并初始化二维列表
  4. matrix = []
  5. for i in range(88):
  6.     matrix.append([])
  7.     for j in range(88):
  8.         matrix[i].append(random.randint(0, 1024))
  9.         if matrix[i][j] == target:
  10.             print(i, j)
复制代码


也就是边生成随机数,边检查和猜测值是否一致
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-9 15:29:01 | 显示全部楼层
本帖最后由 傻眼貓咪 于 2021-10-9 15:30 编辑

代码:
  1. import random
  2. matrix = [[random.randint(0, 2<<9) for _ in range(88)] for _ in range(88)]
  3. target = int(input("请输入一个代匹配的整数:"))
  4. [print(f"matrix[{n}][{row.index(target)}]") if target in row else None for n, row in enumerate(matrix)]
复制代码
输入/输出:
  1. 请输入一个代匹配的整数:123
  2. matrix[4][43]
  3. matrix[8][9]
  4. matrix[30][80]
  5. matrix[36][36]
  6. matrix[39][51]
  7. matrix[53][28]
复制代码
我的代码理解难度比较复杂,仅供参考
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-9 15:37:35 | 显示全部楼层
因为你得遍历整个列表去查看是否有元素与之相等
也就是你得有坐标(即索引值)去提取元素
而 i, j 就是充当索引值的角色
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-10 09:42:51 | 显示全部楼层
Daniel_Zhang 发表于 2021-10-9 14:46
如果想合并为一个嵌套 for 循环的话

也就是边生成随机数,边检查和猜测值是否一致

万分感谢!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-10 09:43:31 | 显示全部楼层
傻眼貓咪 发表于 2021-10-9 15:29
代码:输入/输出:我的代码理解难度比较复杂,仅供参考

万分感谢!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-10 09:44:01 | 显示全部楼层
白two 发表于 2021-10-9 15:37
因为你得遍历整个列表去查看是否有元素与之相等
也就是你得有坐标(即索引值)去提取元素
而 i, j 就是充当 ...

万分感谢!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-1 00:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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