当前位置: 首页 > news >正文

营销型网站建设的五力原则/百度基木鱼建站

营销型网站建设的五力原则,百度基木鱼建站,99元一月做网站,长沙百度网站建设2019独角兽企业重金招聘Python工程师标准>>> 列表、集合和字典推导式 列表推导式是Python最受喜爱的特性之一。它允许用户方便的从一个集合过滤元素,形成列表,在传递参数的过程中还可以修改元素。形式如下: [expr for val in coll…

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

列表、集合和字典推导式

列表推导式是Python最受喜爱的特性之一。它允许用户方便的从一个集合过滤元素,形成列表,在传递参数的过程中还可以修改元素。形式如下:

[expr for val in collection if condition]

它等同于下面的for循环;

result = []
for val in collection:if condition:result.append(expr)

filter条件可以被忽略,只留下表达式就行。例如,给定一个字符串列表,我们可以过滤出长度在2及以下的字符串,并将其转换成大写:

In [154]: strings = ['a', 'as', 'bat', 'car', 'dove', 'python']In [155]: [x.upper() for x in strings if len(x) > 2]
Out[155]: ['BAT', 'CAR', 'DOVE', 'PYTHON']

用相似的方法,还可以推导集合和字典。字典的推导式如下所示:

dict_comp = {key-expr : value-expr for value in collection if condition}

集合的推导式与列表很像,只不过用的是尖括号:

set_comp = {expr for value in collection if condition}

与列表推导式类似,集合与字典的推导也很方便,而且使代码的读写都很容易。来看前面的字符串列表。假如我们只想要字符串的长度,用集合推导式的方法非常方便:

In [156]: unique_lengths = {len(x) for x in strings}In [157]: unique_lengths
Out[157]: {1, 2, 3, 4, 6}

map函数可以进一步简化:

In [158]: set(map(len, strings))
Out[158]: {1, 2, 3, 4, 6}

作为一个字典推导式的例子,我们可以创建一个字符串的查找映射表以确定它在列表中的位置:

In [159]: loc_mapping = {val : index for index, val in enumerate(strings)}In [160]: loc_mapping
Out[160]: {'a': 0, 'as': 1, 'bat': 2, 'car': 3, 'dove': 4, 'python': 5}

嵌套列表推导式

假设我们有一个包含列表的列表,包含了一些英文名和西班牙名:

In [161]: all_data = [['John', 'Emily', 'Michael', 'Mary', 'Steven'],.....:             ['Maria', 'Juan', 'Javier', 'Natalia', 'Pilar']]

你可能是从一些文件得到的这些名字,然后想按照语言进行分类。现在假设我们想用一个列表包含所有的名字,这些名字中包含两个或更多的e。可以用for循环来做:

names_of_interest = []
for names in all_data:enough_es = [name for name in names if name.count('e') >= 2]names_of_interest.extend(enough_es)

可以用嵌套列表推导式的方法,将这些写在一起,如下所示:

In [162]: result = [name for names in all_data for name in names.....:           if name.count('e') >= 2]In [163]: result
Out[163]: ['Steven']

嵌套列表推导式看起来有些复杂。列表推导式的for部分是根据嵌套的顺序,过滤条件还是放在最后。下面是另一个例子,我们将一个整数元组的列表扁平化成了一个整数列表:

In [164]: some_tuples = [(1, 2, 3), (4, 5, 6), (7, 8, 9)]In [165]: flattened = [x for tup in some_tuples for x in tup]In [166]: flattened
Out[166]: [1, 2, 3, 4, 5, 6, 7, 8, 9]

记住,for表达式的顺序是与嵌套for循环的顺序一样(而不是列表推导式的顺序):

flattened = []for tup in some_tuples:for x in tup:flattened.append(x)

你可以有任意多级别的嵌套,但是如果你有两三个以上的嵌套,你就应该考虑下代码可读性的问题了。分辨列表推导式的列表推导式中的语法也是很重要的:

In [167]: [[x for x in tup] for tup in some_tuples]
Out[167]: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

这段代码产生了一个列表的列表,而不是扁平化的只包含元素的列表。

 

转载于:https://my.oschina.net/u/2935389/blog/1857512

http://www.jmfq.cn/news/4980565.html

相关文章:

  • 灵寿网站建设/谷歌推广怎么开户
  • 单页网站下载/百度推广开户代理
  • 网站左右箭头素材/关键词seo报价
  • 怎么做内网网站/海外销售平台有哪些
  • 国外网站做淘宝客/成都最新疫情
  • 免费的舆情网站下载/手游推广加盟
  • 几十元做网站/网络推广优化网站
  • 快速搭建个人网站/最近新闻今日头条
  • 建设服装网站的亮点/seo好学吗入门怎么学
  • 上海网站建设与设计公司/带佣金的旅游推广平台有哪些
  • 黄浦区未成年人思想道德建设网站/陕西seo公司
  • 网站收藏的链接怎么做的/东莞网站建设推广技巧
  • 百度推广包做网站吗/个人推广app的妙招
  • 做软件常用的网站有哪些软件/上海seo优化公司bwyseo
  • 网站建设中的定位设想/网站seo需要用到哪些工具
  • 访问香港网站很慢/域名查询入口
  • php建立网站/个人网站开发网
  • 阜新建设网站/网络推广网址
  • 长沙建站找有为太极就治就/什么是关键词搜索
  • b2b平台怎么做/百度人工优化
  • 网站制作现在赚钱么/广告营销策划方案模板
  • 代做网站的公司/2345系统导航
  • 万户网络做网站/百度一下子就知道了
  • 免费申请三级域名网站/长沙疫情最新数据消息
  • wordpress幻灯片教程/找索引擎seo
  • 如何建立小企业网站/华为手机软文范文300
  • 保定市做网站的电话/郑州网站推广效果
  • mac系统怎么卸载wordpress/南宁seo推广服务
  • 上海网站建设模版/合肥网站制作
  • 网站排名优化软件/谷歌浏览器下载手机版最新版