python if函数用法_python中if条件中的Contains()函数“in”

我对contains()in的功能做了一些研究,特别是与eq()==进行了比较,发现它可以完成许多任务。我设法回答了其中许多问题(见下文)。

除了下面的用法之外,in还有其他有用的用法吗,例如对象?在

我也很好奇Python's "in" set operator中提到的情况,b in s意味着集合s中有一个元素x,使得x==b,hash(x)==hash(b)。不然怎么可能呢?有没有一个两者不相等的例子?在

关于in的研究:in在比较长度为1的字符串时产生相同的结果。在data = ['2','4','1','3']

for d in data:

if '1' in d:

print(d)

print(data.index(d))

for d in data:

if d in '1':

print(d)

print(data.index(d))

for d in data:

if '1' == d:

print(d)

print(data.index(d))

这三种方法都会产生以下结果:

^{pr2}$

尽管相似之处到此为止。In可用于广泛的其他比较:data = [['1','2'],'4','1','3']

for d in data:

if '1' in d:

print(d)

print(data.index(d))

>> ['1', '2']

>> 0

>> 1

>> 2

但在这种情况下,它是顺序敏感的:for d in data:

if d in '1':

print(d)

print(data.index(d))

>> TypeError: 'in ' requires string as left operand, not list

您可以直接检查原始列表,但它适用于集合、元组、dict键和字符串。在data = ['3','2','1'] #string in list, work for numbers, lists etc.

if '1' in data:

print(data.index('1'))

>> 2

data = ['3',['2','1'],'0'] #string in list in list

if '1' in data:

print(data.index('1'))

else:

print('not found')

>> not found

data = ['3','x',['2','1'],'0'] #list in list

if ['2','1'] in data:

print(data.index(['2','1']))

else:

print('not found')

>> 2

data = ('3','2','1') #string in tuple

if '1' in data:

print(data.index('1'))

>> 2

data = set(['3','2','1']) #string in set

if '1' in data:

print('ok')

>> ok

data = {'1':'a','2':'b'} #string in dict keys

if '1' in data:

print(data['1'])

>> a

data = {'a':'1','b':'2'} #string dict values

if '1' in data:

print('ok')

>>

data = 'abc1efg' #string in string

if '1' in data:

print(data.index('1'))

>> 3

data = 'abc1efg' #number in string

if 1 in data:

print(data.index(1))

>> TypeError: 'in ' requires string as left operand, not int

data = [1,'x',(),{}] #dict in list

if {} in data:

print(data.index({}))

>> 3

以上所有操作都与来自operator模块的函数contains一起工作。在import operator

data = [1,'x',(),{}] #contains function

if operator.contains(data,{}):

print(data.index({}))

>> 3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值