前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python玩数据入门必备系列(6):最常用的集合:最常用的集合,列表

Python玩数据入门必备系列(6):最常用的集合:最常用的集合,列表

作者头像
咋咋
发布2021-09-01 14:41:09
2370
发布2021-09-01 14:41:09
举报
文章被收录于专栏:数据大宇宙数据大宇宙

> 最近有许多小伙伴问我要入门 Python 的资料,还有小伙伴完全没有入门 Python 就直接购买了我的 pandas 专栏。因此我决定写几篇 Python 数据处理分析必备的入门知识系列文章,以帮助有需要的小伙伴们更好入门。

前言

上一节我们学习了元祖,也说到了元祖因为不可变,从而说他是最简单又安全的集合。

集合就像一个能存放东西的储物柜,很多时候我们希望随时能往里面放入东西,这时候就需要使用列表 —— list

生成

列表与元祖差不多,都可以直接从代码生成。

生成一个包含数字的列表:

  • - 行1:[元素1,元素2] ,生成一个列表,并把列表给变量 nums
  • - 行2:输出这个列表,看看结果
  • - 注意一个列表的输出显示就像我们生成列表的代码一样

当然也可以定义字符串的列表:

  • - 与之前一样,只是列表里面的元素是字符串而已

列表中的每个元素都可以是任何的类型,并且他们之间可以不一致:

> 注意,尽可能不要用列表存放不同类型的元素。因为通常情况下,后续要对这个列表进行批量操作,如果类型不一样,一般很难进行统一处理。

选取元素

列表的选取与元祖是一样的,所以建议你直接看看本系列上一节内容。

这里简单列举几个例子。

从其他集合转为list

但我们不可能都是直接在代码中指定列表的元素。

比如,用户输入了一个文本 —— 由多个名字用逗号分隔的文本:

  • - 行2:使用字符串的一个方法 split ,作用是对一个文本进行分割,分割出来的每个部分都作为列表的元素,最终是返回一个列表

我们还可以把一个元祖转为一个列表:

  • - 行2:list 方法,我们只要传入一个集合,他就会返回一个列表

但这有啥用呢?因为下面我们将使用列表新增元素

新增元素

我们可以随时随地往列表中加入元素:

  • - 行2:nums.append 方法,传入需要添加的元素。此方法没有返回值的,因为他是直接修改原列表

如果现在我不是要添加一个元素,而是添加一系列元素(本身也是一个列表),是不是只能通过循环来完成?

Python 早就考虑到这种情况:

  • - 行3:nums.extend 方法,传入需要添加的一系列元素(集合)

extend 方法接收的参数不一定非要是列表的,可以是任意集合(只要可以遍历):

  • - 行2:others 变量是一个元祖

你会发现,append 方法只能把元素添加到尾部。列表还有一个方法可以让你把新元素插入到列表指定位置上:

  • - 行3:nums.insert ,第1参数指定元素插入的位置,第2元素为插入的元素
  • - 此时,索引1的位置插入了新元素6,那么原来在索引1位置上的元素2就向后移动,后面的元素自然也随之向后移动

移除元素

列表还可以移除里面的元素:

  • - 行2:nums.remove 方法,传入要移除的元素值,注意,这是根据值来移除

那么,如果列表中有多个重复的元素,会怎样:

  • - 很明显,他只会把最前面是2的元素移除。也就是说每次只会移除一个元素

那到底怎么可以把所有的2去掉呀?!

这时候,可能使用推导式是更好的选择:

  • - 之前我已经写过一篇关于推导式的文章,有兴趣的小伙伴可以去查看(此系列目录下)

列表还有一种形式可以移除元素,他是按位置"弹出"一个元素:

  • - 行2:nums.pop() ,移除指定位置的元素,默认的索引为-1,就是最后一个元素。注意此方法有返回值,返回被移除的元素

当然也可以指定任意位置的索引值:

- 行2:把索引值2的元素(第3个元素)移除

总结

生成列表的方式:

  • - [1, 2, 3, 4, 5]
  • - '小二,张三,李四,王五'.split(',')
  • - list(('小二', '张三', '李四', '王五'))

列表操作

  • - 添加元素:append
  • - 添加多个元素:extend
  • - 插入元素:insert
  • - 移除元素(按值):remove
  • - 移除元素(按位置):pop

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据大宇宙 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档