【4.2】python常用的内置函数--index/rindex/get/callable/locals

一、index与rindex

>>> s='love python love python!'
>>> s.index('python') #返回左边第一个子串'python'的下标
5
>>> s.rindex('python')#返回右边第一个子串'python'的下标
17

a ='aa12bb12cc12dd'
>>> a[:a.rindex('12')]
'aa12bb12cc'

二、字典 get()方法

语法:

dict.get(key, default=None)

参数:

下面是详细参数:

key:key在字典中查找。 default:在key不存在的情况下返回值None。

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7}

print "Value : %s" %  dict.get('Age')
print "Value : %s" %  dict.get('Sex', "Never")

这将输出以下结果:

Value : 7
Value : Never

三、callable

  1. 方法用来检测对象是否可被调用,可被调用指的是对象能否使用()括号的方法调用。

    >>> callable(callable)
    True
    >>> callable(1)
    False
    >>> 1()
    Traceback (most recent call last):
      File "<pyshell#5>", line 1, in 
        1()
    TypeError: 'int' object is not callable
    >>>
    
  2. 可调用对象,在实际调用也可能调用失败;但是不可调用对象,调用肯定不成功。

  3. 类对象都是可被调用对象,类的实例对象是否可调用对象,取决于类是否定义了call方法。

    >>> class A: #定义类A
        pass
    
    >>> callable(A) #类A是可调用对象
    True
    >>> a = A() #调用类A
    >>> callable(a) #实例a不可调用
    False
    >>> a() #调用实例a失败
    Traceback (most recent call last):
      File "<pyshell#31>", line 1, in 
        a()
    TypeError: 'A' object is not callable
    
    
    >>> class B: #定义类B
        def __call__(self):
            print('instances are callable now.')
    
    
    >>> callable(B) #类B是可调用对象
    True
    >>> b = B() #调用类B
    >>> callable(b) #实例b是可调用对象
    True
    >>> b() #调用实例b成功
    instances are callable now.
    

四、locals

[python] view plain copy print?
def foo(arg, a):  
    x = 1  
    y = 'xxxxxx'  
    for i in range(10):  
        j = 1  
        k = i  
    print locals()  

#调用函数的打印结果    
foo(1,2)  
#{'a': 2, 'i': 9, 'k': 9, 'j': 1, 'arg': 1, 'y': 'xxxxxx', 'x': 1}  

配合着format用起来可爽了

cmd = (gzip_cmd + " | head -n {head_count} | "
                      "{seqtk} sample -s42 - {tocheck} | "
                      "awk '{{if(NR%4==2) print length($1)}}' | sort | uniq -c")
    count_out = subprocess.check_output(cmd.format(**locals()), shell=True,
                                        executable="/bin/bash")

参考资料:

http://www.yiibai.com/python/python_dict_get.html

http://www.cnblogs.com/sesshoumaru/p/5983979.html

http://blog.csdn.net/scelong/article/details/6977867

个人公众号,比较懒,很少更新,可以在上面提问题:

更多精彩,请移步公众号阅读:

Sam avatar
About Sam
专注生物信息 专注转化医学