美文网首页
Python特别棒的特性

Python特别棒的特性

作者: liuchungui | 来源:发表于2019-06-28 23:04 被阅读0次

1、*(星号表达式)解压可迭代对象赋值给多个变量

应用场景:解压接受可变长的变量,例如:

>>> record = ('Dave', 'dave@example.com', '773-555-1212', '847-555-1212')
>>> name, email, *phone_numbers = record
>>> name
'Dave'
>>> email
'dave@example.com'
>>> phone_numbers
['773-555-1212', '847-555-1212']
>>>

注意:星号表达式解压出来 的变量永远是列表类型

参考:https://python3-cookbook.readthedocs.io/zh_CN/latest/c01/p02_unpack_elements_from_iterables.html

2、zip迭代多个序列

为了同时迭代多个序列,可以使用zip()函数,例如:

>>> xpts = [1, 5, 4, 2, 10, 7]
>>> ypts = [101, 78, 37, 15, 62, 99]
>>> for x, y in zip(xpts, ypts):
...     print(x,y)
...
1 101
5 78
4 37
2 15
10 62
7 99
>>>

zip(a, b)会生成一个可返回元组(x, y)的迭代器,其中x来自a,y来自b。一旦其中某个序列到底结尾,迭代宣告结束。因此迭代长度跟参数中最短序列长度一致。

当然,也可以使用itertools.zip_longest()函数来解决,从而与最长长度一致。

参考:https://python3-cookbook.readthedocs.io/zh_CN/latest/c04/p11_iterate_over_multiple_sequences_simultaneously.html

3、列表推导式(list comprehensions)

列表推导式提供了一种简明扼要的方法来创建列表。它的结构是在一个中括号里包含一个表达式,然后是一个for语句,然后是0个或多个for或者if语句。那个表达式可以是任意的,意思是你可以在列表中放入任意类型的对象。返回结果将是一个新的列表,在这个以if和for语句为上下文的表达式运行完成之后产生。

范式:variable = [out_exp for out_exp in input_list if out_exp == 2]

例子:

multiples =  [i for i in range(30)  if i %  3 is 0]
print(multiples)
# Output: [0, 3, 6, 9, 12, 15, 18, 21, 24, 27]

参考:https://eastlakeside.gitbooks.io/interpy-zh/content/Comprehensions/list-comprehensions.html

4、匿名函数lambda

当我们的函数只使用一次,不需要显示的定义函数,直接传入匿名函数更方便。

代码示例:

>>>  map(lambda x: x * x,  [1,  2,  3,  4,  5,  6,  7,  8,  9])
[1,  4,  9,  16,  25,  36,  49,  64,  81]

注意:匿名函数不能滥用,限制很多。

参考:https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0013868198760391f49337a8bd847978adea85f0a535591000

https://www.zhihu.com/question/20125256

相关文章

  • Python特别棒的特性

    1、*(星号表达式)解压可迭代对象赋值给多个变量 应用场景:解压接受可变长的变量,例如: 注意:星号表达式解压出来...

  • Mac OS 安装 Python3.5

    Python 3发布3.5版本,看了PEP新特性,还是非常棒。安装python3.5,并搭建相应的环境。 安装py...

  • Mac OS 安装 Python3.5[转]

    Python 3发布3.5版本,看了PEP新特性,还是非常棒。安装python3.5,并搭建响应的环境。 安装py...

  • 精心整理的8道Python面试题,你答不答的出来

    来源 | 菜鸟学Python NO.1 Python这么好 说说它的特性吧 关键特性 Python是一种解释型语言...

  • 好吃、特别棒

    “好吃”、“特别棒”。呀,每每收到顾客对我辣的表扬特开心?。 这是一种无声的支持与鼓励,增强自信心的同时也在激励我...

  • Python特性概要

    一、python特性概要1、python是解释型语言,我们和c对比一下2、python特性总结:字节码,动态,缩进...

  • python3新特性(二) 一些小改动合集

    Python新特性合集 本片文章将集中介绍5个python3的新特性,由于每个特性的改动比较小,所以放到一个合集里...

  • python3新特性(三) 一些小改动合集

    Python新特性合集续 承接上一篇,本片文章将继续介绍一批python3的新特性,由于每个特性的改动比较小,所以...

  • 常用数据结构和算法汇总

    Python List as belowPython语言特性1 Python的函数参数传递2 Python中的元类...

  • python的特性

    Python使用C语言开发 1.面向对象的特性 面向对象的程序设计抽象出对象的行为和属性,把行为和属性分离开,但是...

网友评论

      本文标题:Python特别棒的特性

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