Estellelllle 发表于 2021-10-9 14:38:02

求助大神!!

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

我想问最后“匹配用户输入的整数”那一步,为什么还要加 for i in range(88):
                                                                                              for j in range(88):
为什么还要重复打一次?

Daniel_Zhang 发表于 2021-10-9 14:44:32

因为你选择的是先创建完成整个二维列表(包括生成数字),然后输入你猜测的数值之后,再次循环整个二维列表,看匹配项

Daniel_Zhang 发表于 2021-10-9 14:46:34

如果想合并为一个嵌套 for 循环的话import random

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

# 创建并初始化二维列表
matrix = []
for i in range(88):
    matrix.append([])
    for j in range(88):
      matrix.append(random.randint(0, 1024))
      if matrix == target:
            print(i, j)

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

傻眼貓咪 发表于 2021-10-9 15:29:01

本帖最后由 傻眼貓咪 于 2021-10-9 15:30 编辑

代码:import random
matrix = [ for _ in range(88)]
target = int(input("请输入一个代匹配的整数:"))
[{row.index(target)}]") if target in row else None for n, row in enumerate(matrix)]输入/输出:请输入一个代匹配的整数:123
matrix
matrix
matrix
matrix
matrix
matrix我的代码理解难度比较复杂,仅供参考

白two 发表于 2021-10-9 15:37:35

因为你得遍历整个列表去查看是否有元素与之相等
也就是你得有坐标(即索引值)去提取元素
而 i, j 就是充当索引值的角色

Estellelllle 发表于 2021-10-10 09:42:51

Daniel_Zhang 发表于 2021-10-9 14:46
如果想合并为一个嵌套 for 循环的话

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

万分感谢!!

Estellelllle 发表于 2021-10-10 09:43:31

傻眼貓咪 发表于 2021-10-9 15:29
代码:输入/输出:我的代码理解难度比较复杂,仅供参考

万分感谢!!

Estellelllle 发表于 2021-10-10 09:44:01

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

万分感谢!!
页: [1]
查看完整版本: 求助大神!!