专栏首页DBA随笔Python之list、tuple

Python之list、tuple

Python之list、tuple

前段时间看了看Python,最近在工作中频繁使用,发现自己对Python的掌握还是不够,于是决定,好好整理一阵子关于Python的东西,如果工作当天有更好的分享内容,就暂时分享工作内容,没有的话,就把Python好好过一遍。

Python中有很多内置的类型,今天主要分享list、tuple、dict、以及set这四种

1

list

list是Python内置的一种数据类型,它是一种有序的集合,也叫列表,可以随时添加和删除其中的元素、简单看下list的存储方式:

我们可以通过不同的下标去访问它里面每一个元素的值,当下标越界的时候,系统会给出相应的提示。

如果我们要取最后一个元素,可以直接使用-1下标,直接获取最后 一个元素,如下:

以此类推,还可以去倒数的第二个(下标为-2)、倒数第三个(下标为-3)。

添加

list 是一个可变的有序表,所以,可以往list中追加元素,使用的是append方法:

插入

可以把新的元素插入到list的任意一个位置中,使用insert方法配合下标完成:

删除

删除末尾元素使用pop的方法

需要删除指定位置的参数,只需要在pop()的括号中,填入指定的下标即可。

替换

要想替换list中的某一个元素,直接使用下标,将特定位置的元素进行替换即可:

长度

使用list时候,经常需要判断list的长度,这时候,我们可以采用len进行长度计算:

数据类型

元素数据类型可以不同,例如一个list中,同时包含字符型,整形和bool型,如下:

同样,list的元素也可以是list,例如:

此时我们计算这个list的长度,可以发现:

它的长度是3,这说明list的长度只和它保存的数据个数有关,而与数据类型无关。

在这种list中包含有list的情况下,我们需要访问‘banana’,需要使用LinL[1][0]:

2

tuple

tuple是另外一种有序的列表,叫做元组,tuple和list很相似。它访问元素的方法和list一致,我们可以通过-1访问它的最后一个元素。

tuple与list的区别

第一、tuple一旦初始化我们就不能重新修改它,list当中有insert,append这样的方法,tuple中将不能使用这些方法。

第二、tuple定义的时候需要使用圆括号,而不是list的方括号。

当我们试图改变t[1]当中的内容的时候,会看到错误提示,如下:

值得注意的一点是,当我们定义一个只有一个元素的时候,不能像list一样直接写L=[1],如果写成t=(1),这个时候,python会把它外面的圆括号当做数学中的括号进行解析,导致输入的数字变为t=1,也就是我们定义了一个变量t,它的值是1,如下:

那么这种情况应该怎么处理呢,正确的处理办法是写成下面这样:

主动添加一个逗号,会避免语法上的误解。

数据类型

当一个tuple中包含一个list的时候,这个list当中的值可以发生变化,如下:

这里,可能有些同学会有疑问,为什么tuple本身是不能发生变化的,而tuple中的list却可以发生变化?其原因可以用下面的图解释:

当我们把list中的值进行修改的时候,实际上我们改变的是tuple[2]所指向的那块内存里面的值,tuple当中的内存指向并没有发生变化,结果如图,tuple始终指向一个固定内存位置的list:

简单总结一下,虽然list和tuple比较简单,但是在实际使用的过程中,往往胡忽略一些细节,这里写出来,也算是巩固一下吧。通过此篇,需要记住一点,tuple不可变,list可变,这便足以。

本文分享自微信公众号 - DBA随笔(gh_acc2bbc0d447),作者:AsiaYe

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-11-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python之高级性能

    这里需要注意的是,test[0:3]当中并不包含test[3],它的真实含义是,从下标为0的元素开始,直到索引3为止,但是不包含索引3。切记不要理解为连续取3个...

    AsiaYe
  • MySQL8.0角色管理---(一)

    今天看了看MySQL8.0官方文档的角色管理部分,写点东西总结下这块的内容吧。

    AsiaYe
  • Python之高级特性(2)

    加入我们想要生成一个list,它的内容是从1到8的整数,我们可以用list(range(1:9))来进行生成:

    AsiaYe
  • ArrayList在foreach删除倒数第二个元素不抛并发修改异常的问题

    平时我们使用ArrayList比较多,但是我们是否知道ArrayList在进行foreach的时候不能直接通过list的add或者move方法进行删除呢,

    小勇DW3
  • [LeetCode] 119. Pascal's Triangle II

    【原题】 Given an index k, return the kth row of the Pascal’s triangle. For exampl...

    用户1148830
  • Python 嵌套列表展开

    问题1:对于列表形如 list_1 = [[1, 2], [3, 4, 5], [6, 7], [8], [9]] 转化成列表 list_2 = [1, 2, ...

    py3study
  • 第十二节、Python创建list《Python学习》

    Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。

    申霖
  • python---集合

    py3study
  • Python-排序-02-列表排序

    系统:Windows 7 语言版本:Anaconda3-4.3.0.1-Windows-x86_64 编辑器:pycharm-community-2016.3....

    zishendianxia
  • python将字符串类型list转换成list

    python读取了一个list是字符串形式的'[11.23,23.34]',想转换成list类型:

    机器学习和大数据挖掘

扫码关注云+社区

领取腾讯云代金券