首页 科技正文

皇冠体育app:必知必会的8个Python列表技巧

admin 科技 2020-06-24 3 0

原作者:Nik Piepenbreier

翻译&内容弥补:费弗里

原文地址:https://towardsdatascience.com/advanced-python-list-techniques-c6195fa699a3

  列表(List)是你使用Python历程中接触最为频仍的数据结构,也是功效最为壮大的几种数据结构之一。Python列表异常的万能且蕴含着许多隐藏技巧,下面我们就来探索一些常用的列表技巧。

1 列表元素的过滤

1.1 filter()的使用

  filter()函数接受2个参数:1个函数工具以及1个可迭代的工具,接下来我们界说1个函数然后对1个列表举行过滤。

  首先我们建立1个列表,而且剔除掉小于即是3的元素:

图1

  回首一下发生了什么:

  1. 我们界说了列表original_list
  2. 接着我们界说了一个接受数值型参数number的函数filter_three,当传入的参数值大于3时会返回True,反之则会返回False
  3. 我们界说了filter工具filtered,其中filter()接受的第一个参数是函数工具,第二个参数是列表工具
  4. 最终我们将filter工具转化为列表,最终获得经filter_three过滤后original_list内留下的元素。

1.2 使用列表推导式

  类似的,我们也可以行使列表推导式来过滤列表元素,作为一种天生和修改列表优雅的方式,列表推导式想必人人都对照熟悉了,下面是使用列表推导完成同样义务的历程:

图2

2 修改列表

2.1 map()的使用

  Python中内置的map()函数使得我们可以将某个函数应用到可迭代工具内每一个元素之上。

  比方说我们想获取到一个列表工具中每一个元素的平方,就可以使用到map()函数,就像下面的例子一样:

图3

  类似filter()的事情历程,下面我们来看看发生了什么:

  1. 首先我们界说了列表original_list,以及接受数值型参数并返回其平方值的函数square()
  2. 接着我们界说了map工具squares,类似filter()map()接受的第一个参数是函数工具,第二个参数是列表工具
  3. 最终我们将map工具squares列表化,就获得了想要的效果

2.2 使用列表推导式

  同样的我们也可以使用列表推导式完成同样的义务:

Sunbet,进入申博Sunbet官网  第1张 图4

3 行使zip()来组合列表

  有些情形下我们需要将两个或以上数目的列表组合在一起,这类需求使用zip()来完成异常利便。

  zip()函数吸收多个列表作为参数传入,进而获得每个位置上一一对应的元素组合,就像下面的例子一样:

Sunbet,进入申博Sunbet官网  第2张 图5

4 颠倒列表

  Python中的列表是有序的数据结构,正因如此,列表中元素的顺序很主要,有些时刻我们需要翻转列表中所有元素的顺序,可以通过Python中的切片操作,用::-1来快捷地实现:

Sunbet,进入申博Sunbet官网  第3张 图6

5 检查列表中元素的存在情形

  有些情形下我们想要检查列表中是否存在某个元素,这种时刻就可以使用到Python中的in运算符,譬如说我们有一个纪录了所有竞赛获胜队伍名称的列表,当我们想查询某个队名是否已获胜时,可以像下面的例子一样:

Sunbet,进入申博Sunbet官网  第4张 图7

6 找出列表中泛起次数最多的元素

  有些情形下我们想要找出列表中泛起次数最多的元素,譬如对纪录若干次抛硬币效果的列表,找出哪一种效果泛起次数最多,就可以参考下面的例子:

Sunbet,进入申博Sunbet官网  第5张 图8

7 展平嵌套列表

  有些情形下我们会遇到一些嵌套的列表,其每个元素又是各自差别的列表,这种时刻我们就可以行使列表推导式来把这种嵌套列表展平,如下面2层嵌套的例子:

Sunbet,进入申博Sunbet官网  第6张 图9

分外弥补

  原作者这里只考虑到两层嵌套的列表,若是是更多层嵌套,就需要有若干层写若干for循环,对照贫苦,实在另有一种更好的方式,我们可以使用pip install dm-tree来安装tree这个专门用于展平嵌套结构的库,可以展平随便层嵌套列表,使用例子如下:

Sunbet,进入申博Sunbet官网  第7张 图10

8 检查唯一性

  若是你想要查看列表中的值是否都是唯一值,可以使用Python中的set数据结构的特点,譬如下面的例子:

Sunbet,进入申博Sunbet官网  第8张 图11

  以上就是本文的全部内容,若有疑问迎接在谈论区讨论~

,

联博开奖

www.326681.com采用以太坊区块链高度哈希值作为统计数据,联博以太坊统计数据开源、公平、无任何作弊可能性。联博统计免费提供API接口,支持多语言接入。

版权声明

本文仅代表作者观点,
不代表本站Sunbet的立场。
本文系作者授权发表,未经许可,不得转载。

评论