Python 里面的一些小技巧

发布时间:2022-03-29 09:39:06 人气:178 作者:多测师

  三元条件判断的3种实现方法

  C语言中有三元条件表达式,如 a>b?a:b,Python中没有三目运算符(?:),但Python有它自己的方式来实现类似的功能。这里介绍3种方法:

  true_part if condition else false_part

  a,b=2,3

  c=a if a>b else b

  a,b=2,1

  c=a if a>b else b

  >>> print c

  利用and-or条件判断的特性来实现三元条件判断

  首先介绍一下,and和or的用法:

  python 中的and从左到右计算表达式,若所有值均为真,则返回最后一个值,若存在假,返回第一个假值。

  无论是列表,元组还是字符串,空表示False,非空表示True

  >>> 'python' and [] and (2,3)

  []

  >>> 'python' and [2,3] and (3,4)

  (3, 4)

  or 也是从左到右计算表达式,存在真,则返回第一个为真的值,若均为假,则返回最后一个值。

  >>> 'python' or [3,4] or ()

  'python'

  >>> '' or [] or ()

  ()

  然后,我们利用and-or条件判断的特性来实现三元条件判断:

  a,b=2,1

  c = (a>b and [a] or [b])[0]

  >>> print c

  使用列表

  a,b=2,7

  c = [b,a][a>b]

  >>> print c

  分析:若a>b为真,由于真用1表示,因此相当于c=[b,a][1],即c=a

  若a>b为假,由于假用0表示,因此相当于c=[b,a][0],即c=b

  >>> int(False)

  0

  >>> int(True)

  字典(dict)

  以下问题都是在用Python写KNN的时候遇到的:

  dict_items()

  python 字典(dict)的特点就是无序的,按照键(key)来提取相应值(value),如果我们需要字典按值排序的话,那可以用下面的方法来进行:

Python 里面的一些小技巧

  1 下面的是按照value的值从大到小的顺序来排序。

  输出的结果:

  [(‘aa’, 74), (‘a’, 31), (‘bc’, 5), (‘asd’, 4), (‘c’, 3), (‘d’, 0)]

  下面我们分解下代码:

  print dic.items() 得到[(键,值)]的列表。

  然后用sorted方法,通过key这个参数,指定排序是按照value,也就是元素d[1]的值来排序。reverse = True表示是需要翻转的,默认是从小到大,翻转的话,那就是从大到小。

  2 对字典按键(key)排序:

  dic = {‘a’:31, ‘bc’:5, ‘c’:3, ‘asd’:4, ‘aa’:74, ‘d’:0}

  dict= sorted(dic.items(), key=lambda d:d[0])

  print(dict)

  dict_get()

  dic = {‘a’:31, ‘bc’:5, ‘c’:3, ‘asd’:4, ‘aa’:74, ‘d’:0}

  dic.get(‘a’,1)

  31

  dic.get(‘d’,1)

  0

  dic.get(‘f’,1)

  1

  D.get(k[,d]) -> D[k] if k in D, else d. d defaults to None.

  如果k在字典中,返回D[k],即value值,否则返回d,d默认为None

  Image和Ndarray互相转换

  import numpy as np

  from PIL import Image

  img = Image.open(filepath)

  img_convert_ndarray = np.array(img)

  ndarray_convert_img= Image.fromarray(img_convert_ndarray )

  # np.array(object) 这个函数很强大啊,看源码里面给的注释

  # object : array_like

  # An array, any object exposing the array interface, an object whose

  # __array__ method returns an array, or any (nested) sequence.

  以上内容为大家介绍了Python 里面的一些小技巧,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注多测师。https://www.e70w.com/xwzx/

返回列表
在线客服
联系方式

热线电话

17727591462

上班时间

周一到周五

二维码
线