免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 8860 | 回复: 4
打印 上一主题 下一主题

如何用最简便的方法查找list中的list的值?--[已解决] [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-08-07 13:22 |只看该作者 |倒序浏览
这个问题有点绕口。实际上是这样的:

假设现有list y = [[1,2],3,4]
y的第一个值也是一个list

再假设有个值x=1
那么x in y返回的就是假,找不到

当然可以用循环,但是觉得那样太不python了

于是到下面的方法:

[i for i in y if (x in i)]
遗憾的是系统报错

后来有想到下面的方法:

def f(x): return (1 in x)
filter(f, y)

但还是不成功。

请问除了循环还有更简洁的方法吗?

谢谢!

[ 本帖最后由 blue_mliu 于 2007-8-7 16:50 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-08-07 13:43 |只看该作者
在f(x)中应该对x判断一下类型,如果为list则使用in如果为int则使用==
另外1建议也是一个可以传入的参数。

论坛徽章:
0
3 [报告]
发表于 2007-08-07 16:04 |只看该作者
>>> y[0][0]
1

论坛徽章:
0
4 [报告]
发表于 2007-08-07 16:16 |只看该作者
[i for i in y if (type(i) == list) and (1 in i)]

是这个意思吗?

论坛徽章:
0
5 [报告]
发表于 2007-08-07 16:47 |只看该作者
回2楼:
谢谢你提供宝贵的思路!

回3楼:
我不是想找这个内容,而是想判断一个值是否在list中的list中。呵呵。。。谢谢了!

回4楼:
就是我想要的,我一直以为我语法有问题,老报错,原来是要这样用的。。。谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP