为了账号安全,请及时绑定邮箱和手机立即绑定

python for in中的in

python for in中的in

爱吃小鱼干3457117 2016-07-09 13:57:43
for in 和if in  中的in是什么意思,我之前的理解是做比较相当于什么什么与什么什么,不过好像in  并不是我现象中的那样,谁能指点一下
查看完整描述

2 回答

?
清波

TA贡献165条经验 获得超90个赞

首先 in 在Python 中是操作符,具体来说是 成员操作符。就是对于序列(字符串,元组,列表)或集合(set)或映射(字典)这些数据类型 做 成员判断,自然成员判断的返回是 在其中不在其中,用Python 的说法就是 True , False ,也就是说 xx in xxx 是可以用在 诸如: if xx in xxx, while xx in xxx 等等典型的需要判断的情况(不止如此,还有更多)。

代码如下:

a = 1
b = (1,2,3)
c = [1,2,3]
d = {1:"a",2:"b",c:"3"}
e = {1,2,3}
f = "123"

if a in b:
    do something
    .
    .
    .
if a in f:
    do something #完全 do 不了,因为不在其中。。。

作为成员操作符 跟另外一个关键字 not 配合,组成不能再优雅的 非成员判断: 不在其中。这对第一次接触这类语法的人,尤其是有其他语言基础的人,有很大的价值观冲击(我就是)。。。代码如下:

if a not in f;
    do something


然后,更大冲击要来了, JS 在上个版本中也引入了类似的语法。 for xx in xxx: do something with xx or not。

这是对 关键字 in重载,在这里解释下 重载,代码如下:

print 1+2
3
print "1"+"2"
"13"

如上,就是对 加号 + 的重载(对于不同的数据类型,加号表现出不同的行为),严格来说,for 循环中的 in 的重用算不算重载,我也说不清楚。姑且算吧。 代码如下:

for i in a:
    print i # do something with i
    
for i in a:
    print "%" # do noting with i

基本就这些吧。

查看完整回答
1 反对 回复 2016-07-10
?
飞翔32993

TA贡献14条经验 获得超4个赞

以下只是个人理解,仅供参考:

1、首先 in 关键字,从字面上理解为,在什么里面

2、有了1的理解分析如下代码

s = ["a","b","c"]

for v in s:
    print(v)
	
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")

def test(v):
    if v in s:
        print(u'当前值在s集合里面')
    else:
        print(u'当前值不在s集合里面')

test('b')
test("m")

print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")

def test2(v):
    if v not in s:
        print(u'当前值不在s集合里面')
    else:
        print(u'当前值在s集合里面')
test2('m')
test('b')

3、通过如上代码执行结果可以看出,当与for循环一起使用的时候,其实是把集合的元素分别赋值给in之前的变量,而在和if一起使用时就如你所说,判断XXX是否存在于XXX之中(在和if使用时还有一个与此相反的:not in),希望能帮到你如上代码如果是在python2版本中运行可以吧print() 替换为 print 

查看完整回答
1 反对 回复 2016-07-09
  • 2 回答
  • 0 关注
  • 2504 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信