鱼C论坛

 找回密码
 立即注册
查看: 1883|回复: 19

[已解决]关于python循环遍历

[复制链接]
发表于 2020-8-11 16:05:11 | 显示全部楼层 |阅读模式

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

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

x
还是上次那个没有解决的问题
我现在想便利一个200*40的矩阵,这8000个数字每一个都是0到10中的一个,每一行每一列都有自己的对应规则,比如第一行平均值是4,第一列方差是3,如何才能实现呢?
我的想法是把所有的可能情况都列出来,然后检验是否符合要求,请问如何才能遍历这些情况?
最佳答案
2020-8-11 16:38:11
本帖最后由 yhhpf 于 2020-8-11 16:39 编辑
惟余莽莽 发表于 2020-8-11 16:29
数据没有生成,这不是不会用循环来生成这个嘛。。不知道用什么方法来生成

from random import randint
row = 0
for a in range(200):
    row += 1
    print('')
    for b in range(40):
        print(randint(0,10),end='\t')
这是随便一个生成矩阵例子...利用循环嵌套
1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-11 16:09:42 | 显示全部楼层
首先这些规则得明确是哪些吧,然后遍历的时候if判断好了哈0 0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-11 16:11:18 | 显示全部楼层
yhhpf 发表于 2020-8-11 16:09
首先这些规则得明确是哪些吧,然后遍历的时候if判断好了哈0 0

是啊,但是问题是8000个数字,怎么用循环让他一组一组生成呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-11 16:14:55 | 显示全部楼层
惟余莽莽 发表于 2020-8-11 16:11
是啊,但是问题是8000个数字,怎么用循环让他一组一组生成呢?

到底是生成数据还是遍历数据?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-11 16:15:31 | 显示全部楼层
zltzlt 发表于 2020-8-11 16:14
到底是生成数据还是遍历数据?

生成哈哈哈哈哈哈不好意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-11 16:16:28 | 显示全部楼层
惟余莽莽 发表于 2020-8-11 16:11
是啊,但是问题是8000个数字,怎么用循环让他一组一组生成呢?

咋问题能描述清楚点么...
你意思是一边生产,生产完一组判断一组???
那就循环嵌套下,先生成一组,生成完去盘点...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-11 16:22:03 | 显示全部楼层
yhhpf 发表于 2020-8-11 16:16
咋问题能描述清楚点么...
你意思是一边生产,生产完一组判断一组???
那就循环嵌套下,先 ...

对,我要找到那个符合条件的8000个数字
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-11 16:27:56 | 显示全部楼层
惟余莽莽 发表于 2020-8-11 16:22
对,我要找到那个符合条件的8000个数字

...如果是数字直接有你来生成,那你生成的时候按照规则去生成即可;
...如果数字已经生成了,那你直接遍历去判断是否满足条件即可;

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

使用道具 举报

 楼主| 发表于 2020-8-11 16:29:49 | 显示全部楼层
yhhpf 发表于 2020-8-11 16:27
...如果是数字直接有你来生成,那你生成的时候按照规则去生成即可;
...如果数字已经生成了,那你直接遍 ...

数据没有生成,这不是不会用循环来生成这个嘛。。不知道用什么方法来生成
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-11 16:38:11 | 显示全部楼层    本楼为最佳答案   
本帖最后由 yhhpf 于 2020-8-11 16:39 编辑
惟余莽莽 发表于 2020-8-11 16:29
数据没有生成,这不是不会用循环来生成这个嘛。。不知道用什么方法来生成

from random import randint
row = 0
for a in range(200):
    row += 1
    print('')
    for b in range(40):
        print(randint(0,10),end='\t')
这是随便一个生成矩阵例子...利用循环嵌套
1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-11 16:44:02 | 显示全部楼层
yhhpf 发表于 2020-8-11 16:38
这是随便一个生成矩阵例子...利用循环嵌套

是这样的,我还需要判断,比如说第一行的平均值是4,第一列的平方差是3,所以我在想是不是要用列表还是什么,方便调用,还有就是这个貌似是随机生成的,我想要从000000000000这种一个一个试,一直试到成功满足条件为止。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-11 16:47:08 | 显示全部楼层
惟余莽莽 发表于 2020-8-11 16:44
是这样的,我还需要判断,比如说第一行的平均值是4,第一列的平方差是3,所以我在想是不是要用列表还是什 ...

所以我才说,你生成的时候加入你的规则啊,我是取随机数去做的,你就不能改成自己想要的规则???
用列表是方便呀,所以我不是专门还给你写了个row += 1来代表第几行么???你完全可以利用这个去生成列表啊!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-11 16:47:46 | 显示全部楼层
惟余莽莽 发表于 2020-8-11 16:44
是这样的,我还需要判断,比如说第一行的平均值是4,第一列的平方差是3,所以我在想是不是要用列表还是什 ...

举一反三一下,老哥!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-11 17:02:08 | 显示全部楼层
yhhpf 发表于 2020-8-11 16:47
所以我才说,你生成的时候加入你的规则啊,我是取随机数去做的,你就不能改成自己想要的规则???
用列 ...

我们先拿一个2*2的矩阵举个例子,我想要的是0000判断一下,不符合条件,0001判断一下,0002判断一下,一直到10,10,10,10判断,如果用单纯的循环我感觉需要的是10的4次方,也就是我要写4个循环体,在最内层进行判断。是这样吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-11 17:09:54 | 显示全部楼层
惟余莽莽 发表于 2020-8-11 17:02
我们先拿一个2*2的矩阵举个例子,我想要的是0000判断一下,不符合条件,0001判断一下,0002判断一下,一 ...

你不是按行来判断么...每行判断一次
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-11 17:10:51 | 显示全部楼层
yhhpf 发表于 2020-8-11 17:09
你不是按行来判断么...每行判断一次

不是呀,有行有列,有的还是两行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-11 17:18:29 | 显示全部楼层
惟余莽莽 发表于 2020-8-11 17:10
不是呀,有行有列,有的还是两行

给你加行了你就不能自己变通下加个列么...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-11 17:32:57 | 显示全部楼层
yhhpf 发表于 2020-8-11 17:18
给你加行了你就不能自己变通下加个列么...

不是,你可能没有明白我的意思,我的意思是8000个数字,每个都有十种可能,我岂不是要写8000个循环才能列举出所有的可能?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-11 17:55:52 | 显示全部楼层
trans_matrix = [[0 for col in range(40)] for row in range(200)]
这个是生成200行40列,所有元素都为0 的矩阵
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-12 08:47:33 | 显示全部楼层
惟余莽莽 发表于 2020-8-11 17:32
不是,你可能没有明白我的意思,我的意思是8000个数字,每个都有十种可能,我岂不是要写8000个循环才能列 ...

给你俩选择,要么就把问题发的明明白白的
要么你就按照我给你的方法自己举一反三一下!哪里来要写8000个循环的?就我给的那随机8000个数字不就2个循环嵌套200*40=8000个么!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-19 11:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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