美文网首页
你可能不知道的一些Python技巧

你可能不知道的一些Python技巧

作者: Hetch_李 | 来源:发表于2016-05-26 13:30 被阅读0次

    1.如何使用PIP更新package?

    python -m pip install --upgrade package_name

    2.如何判断文件是否存在?

    import os.path

    os.path.isfile(filename)

    3.Python中的三元运算符

    a if test else b

    根据test为True,则返回a,若为False,则返回b

    4.如何在一个表达式里合并两个字典?

    >>> x = {'a':1, 'b': 2}

    >>> y = {'b':10, 'c': 11}

    >>> z = dict(x.items() + y.items())

    >>> z

    {'a': 1, 'c': 11, 'b': 10}

    5.如何用字典的值对字典进行排序?

    import operator

    x ={1: 2, 3: 4, 4:3, 2:1, 0:0}

    sorted_x = sorted(x.items(),key = operator.itemgetter(1)) 或者

    sorted(d.items(), key=lambda x: x[1])

    6.如何在一个函数里用全局变量?

    如果我在一个函数里建了一个全局变量,那么我怎么在另一个函数里使用这个全局变量?

    我需要把这个全局变量赋值给这个函数的局部变量吗?

    如果你要在别的函数里使用全局变量,只要在被调用全局变量函数的里事先用global声明一下:

    globvar = 0

    def set_globvar_to_one():

    global globvar # 需要用global修饰一下globvar

    globvar = 1

    def print_globvar():

    print globvar # 如果要读globbar的值的话不需要用global修饰

    set_globvar_to_one()

    print_globvar() # 输出 1

    我猜正是因为全局变量比较危险,所以Python为了确保你真的知道它是全局变量,所以需要加一个global关键字.

    7.检查列表是否为空的最好方法?

    if not a:

    print "List is empty"

    用隐藏的空列表的布尔值才是最Pythonic的方法.

    8.__str__和repr__的区别?

    - 用起来没有什么区别

    - __repr__的目的是明确的

    - __str__的目的是可读性

    - __str__的用法包含__repr__

    9.在循环中获取索引(数组下标)?

    list_test = [8, 23, 45, 12, 78]

    for index, value in enumerate(list_test):

    print index , value

    10.Python中的appen和extend的区别?

    In[7]: x = [1,2,3,4]

    In[8]: y = [8,9,10]

    In[9]: x.append(y)

    In[10]: x

    Out[10]: [1, 2, 3, 4, [8, 9, 10]]

    In[11]: x = [1,2,3,4]

    In[12]: y = [8,9,10]

    In[13]: x.extend(y)

    In[14]: x

    Out[14]: [1, 2, 3, 4, 8, 9, 10]

    10.字典里添加元素的方法?

    In[15]: x  = {1:2,3:4}

    In[16]: x.update({5:6})

    In[17]: x

    Out[17]: {1: 2, 3: 4, 5: 6}

    11.Python中有检查字符串包含的方法吗?

    if not "haha" in sstring: continue

    或者:

    if "haha" not in somestring : continue

    12.如何在只用一行捕获多个异常?

    try:

    something

    except(ExceptionA,ExceptionB,.....) as e:

    something

    13.在Python里怎么读取stdin?

    import fileinput

    for line in fileinput.input():

    pass

    14.在Python里获取当前时间?

    In[19]: import datetime

    In[20]: datetime.datetime.now()

    Out[20]: datetime.datetime(2016, 5, 26, 11, 31, 55, 508000)

    In[21]: datetime.datetime.now().time()

    Out[21]: datetime.time(11, 32, 5, 775000)

    15.在Python怎么样才能把列表分割成同样大小的块?

    tuple(l[i:i+n] for i in xrange(0, len(l), n))

    16.检查一个字符串是否是一个数字?

    In[22]: x = '569789'

    In[23]: x.isdigit()

    Out[23]: True

    In[24]: y = 'gdf2667'

    In[25]: y.isdigit()

    Out[25]: False

    17.查找列表中某个元素的下标?

    In[26]: ['a','b','c'].index('b')

    Out[26]: 1

    18.如何在列表中随机取一个元素?

    import random

    f= ['a', 'b', 'c']

    print(random.choice(f))

    19.字典推倒式

    d = {key: value for (key, value) in iterable}

    20.如何最快速反转字符串?

    In[30]: 'nihao ma'[::-1]

    Out[30]: 'am oahin'

    20.如何测量脚本的运行时间?

    Python自带了一个叫cProfile的分析器.它不仅实现了计算整个时间,而且单独计算每个函数运行时间,并且告诉你这个函数被调用多少次,它可以很容易的确定你要优化的值.

    你可以这样调用:

    import cProfile

    cProfile.run('foo()')

    In[37]: import cProfile

    In[38]: cProfile.run('fm()')

    4950

    3 function calls in 0.000 seconds

    Ordered by: standard name

    ncalls  tottime  percall  cumtime  percall filename:lineno(function)

    1    0.000    0.000    0.000    0.000 :1(fm)

    1    0.000    0.000    0.000    0.000 :1()

    1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}

    21.Python中用什么代替switch语句?

    在其他语言中有switch语句,但是python中没有。可以用字典的方式来解决这个问题。

    def helpFunction(x):

    return {

    'a':12,

    'b':45,

    'c':78

    }[x]

    if __name__=='__main__':

    print helpFunction('b')

    如果你希望设置一个默认值可以用字典的get方法:

    def f(x):

    return {

    'a': 1,

    'b': 2,

    }.get(x, 9)

    22.如何生成包含大写字母和数字的随机字符串?

    In[40]: import random

    In[41]: import string

    In[42]: ''.join(random.choice(string.ascii_uppercase+string.digits) for _ in range(5))

    Out[42]: 'XBNH7'

    23.如何合并两个列表?

    list1 = [1,2,3,4]

    list2 = [5,6,7,8]

    list3 = list1+list2

    24.如何把字符串转化为时间?

    from datetime import datetime

    date_object = datetime.strptime('Jun 1 2016 1:33PM', '%b %d %Y %I:%M%p')

    Out[45]: datetime.datetime(2016, 6, 1, 13, 33)

    25.如何用pip升级所有包?

    pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs pip install -U

    26.如何给字符串填充0?

    A = 'demo'

    A.rjust(5,'0')

    '0demo'

    微信公众号:

    相关文章

      网友评论

          本文标题:你可能不知道的一些Python技巧

          本文链接:https://www.haomeiwen.com/subject/avcxdttx.html