鱼C论坛

 找回密码
 立即注册
查看: 1587|回复: 8

[已解决]如何筛选数组内键入条件数量

[复制链接]
发表于 2021-3-26 14:45:47 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 wuhook 于 2021-3-26 15:48 编辑

例:
数组
y = [
[1,2,3,4,5,],[2,3,4,5,6],
[3,3,4,5,6,],[4,4,4,5,6,],
[5,5,5,5,3],[1,2,4,4,5],
]

如图,有以上数组;需求是写个查询筛选,例如input("2,2"),会便利筛选数组内每个列表2,2的条数即可,即:列表中第一列为2并且第二列为2,的数据有多少条
我知道会用到len()统计函数和计数函数count()
但是我不知道怎么用长度判断,我也不知道行不行;我是新手;大神们见笑了,希望能用普通方法,和常用方法给个思路
跪谢~~~


最佳答案
2021-3-26 16:53:19
wuhook 发表于 2021-3-26 16:29
不是我表达方式差;基本功扎实不知道怎么说而已,就是比如我INPUT2,2的话,筛选出第一列等于2 ...
y = [
[1,2,3,4,5,],[2,3,4,5,6],
[3,3,4,5,6,],[4,4,4,5,6,],
[5,5,5,5,3],[1,2,4,4,5],
]

# 将输入数字以 "," 分隔,列表方式储存于 InData
InData = input("输入:").split(",")
# 将 InData 内 字符串 str 类型元素整体转换成整形 int ,储存于 data
data = list(map(int,InData))
# 获取 data 中元素数目(长度) length 
length = len(data)
# 对数组 y 内元素(子列表)逐步操作
for lst in y:
    # 判断 子列表 lst 前 length 个元素是否 和 data 相等
    if lst[:length] == data:
        # 如果相等 输出该 子列表 lst
        print(lst)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-26 14:48:05 | 显示全部楼层
本帖最后由 qq1151985918 于 2021-3-26 14:52 编辑

每个列表中第一行第二行为2,2的条数  是什么意思?

如果有原题  最好把原题发一下,或者你举一个详细的例子,输入什么输出什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-26 15:50:31 | 显示全部楼层
qq1151985918 发表于 2021-3-26 14:48
每个列表中第一行第二行为2,2的条数  是什么意思?

如果有原题  最好把原题发一下,或者你举一个详细的 ...

谢谢指教,没有原题,我就是想写这个东西,思路也有;就是不知道怎么判断和灵活的运用len() conut()函数;
就是便利数组中每个列表查询第一列为2并且第二列为2的数据有多少条
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-26 15:55:01 | 显示全部楼层
本帖最后由 qq1151985918 于 2021-3-26 15:58 编辑
wuhook 发表于 2021-3-26 15:50
谢谢指教,没有原题,我就是想写这个东西,思路也有;就是不知道怎么判断和灵活的运用len() conut()函数 ...


01 - 副本 (2).png
你是想输入 (2 , 2)
查红色部分分别有几个2吗?想返回 ( 0 , 0)
是这样吗?

还是想
01 - 副本 (2).png
返回 ( 1 ,2 ) ?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-26 16:14:43 | 显示全部楼层
qq1151985918 发表于 2021-3-26 15:55
你是想输入 (2 , 2)
查红色部分分别有几个2吗?想返回 ( 0 , 0)
是这样吗?


我想组合统计,比如上图第三列等于2并且第四列等于3的有几个;
1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-26 16:22:07 | 显示全部楼层
wuhook 发表于 2021-3-26 16:14
我想组合统计,比如上图第三列等于2并且第四列等于3的有几个;

我就发现你表达方式这么差吗?  第三列等于2  并且  第四列 等于3  

这起码需要  4 个参数   第 a 列 等于 b 且 第 c 列等于 d

你题目输个  (2 , 2) 让人猜么?

都说让你举一个详细例子,输入什么输出什么  怎么就说不明白?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-26 16:29:51 | 显示全部楼层
qq1151985918 发表于 2021-3-26 16:22
我就发现你表达方式这么差吗?  第三列等于2  并且  第四列 等于3  

这起码需要  4 个参数   第 a 列  ...

不是我表达方式差;基本功扎实不知道怎么说而已,就是比如我INPUT2,2的话,筛选出第一列等于2并且第二列等于2的;然后我INPUT 1,2,3的话就筛选第一列等于1并且第二列等于2并且第三列等于3的;我上图画错了 抱歉
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-26 16:53:19 | 显示全部楼层    本楼为最佳答案   
wuhook 发表于 2021-3-26 16:29
不是我表达方式差;基本功扎实不知道怎么说而已,就是比如我INPUT2,2的话,筛选出第一列等于2 ...
y = [
[1,2,3,4,5,],[2,3,4,5,6],
[3,3,4,5,6,],[4,4,4,5,6,],
[5,5,5,5,3],[1,2,4,4,5],
]

# 将输入数字以 "," 分隔,列表方式储存于 InData
InData = input("输入:").split(",")
# 将 InData 内 字符串 str 类型元素整体转换成整形 int ,储存于 data
data = list(map(int,InData))
# 获取 data 中元素数目(长度) length 
length = len(data)
# 对数组 y 内元素(子列表)逐步操作
for lst in y:
    # 判断 子列表 lst 前 length 个元素是否 和 data 相等
    if lst[:length] == data:
        # 如果相等 输出该 子列表 lst
        print(lst)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-26 16:57:58 | 显示全部楼层

不管怎么样,还是谢谢!我研究研究,感谢大佬的耐心
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-16 07:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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