认识Python 列表和元组

列表用方括号   l=[[‘xyz‘,123], ‘abc‘, 3140000000.0, (23+1.3j), ‘ddd‘]

元组用圆括号   t=([‘xyz‘, 123],‘abc‘, 3140000000.0, (23+1.3j), ‘ddd‘)

这两个序列类型很相似,一开始没有想明白python为什么要设置两个相似的序列类型,在看完《python核心编程》的讲解后有了进一步的认识,特做此笔记,重点讲述不同之处及元组的不可变性质。

二者的相似处:

  元组的对象和序列类型操作符、内建函数和列表的完全一样。如 切片、合并、多次拷贝、检查一个对象是否属于一个元组以及进行元组之间的比较等。

  元组的切片操作跟列表一样,用方括号作为切片操符([]),里面写上索引值或者索引范围。

  >>> ‘abc‘ in t
  True

  >>> t[0][1]
  123

  >>> t[1:]
  (‘abc‘, 3140000000.0, (23+1.3j), ‘ddd‘)

  

二者不同处:

  • 元组是一种不可变类型,意味着一个元组一旦定义,不能更新或者改变元组的元素

    1. 因为元组是容器对象,很多时候你想改变的只是这个容器中的一个或者多个元素,不幸的
      是这是不可能的
  • 元组是常见的默认集合类型
    1. 所有的多对象的,逗号分隔的,没有明确用符号定义的,比如说像用方括号表示列表和用
      圆括号表示元组一样,等等这些集合默认的类型都是元组

      >>> ‘abc‘, -4.24e93, 18+6.6j, ‘xyz‘
      (‘abc‘, -4.24e+093, (18+6.6j), ‘xyz‘)
      >>>
      >>> x, y = 1, 2
      >>> x, y
      (1, 2)

    2. 所有函数返回的多对象(不包括有符号封装的)都是元组类型
  • 只有一个元素的元组需要在元组分隔符里面加上一个逗号,用以防止跟普通的分组操作符混淆

    >>> o=[‘aaa‘]

    >>> type(o)
    <type ‘list‘>

    >>> a=(‘abc‘)
    >>> type(a)
    <type ‘str‘>
    >>> a=(‘abc‘,)
    >>> type(a)
    <type ‘tuple‘>

  

元组是不可变类型,如何更新元组

  1.子元组的拼凑

    >>> tup1 = (12, 34.56)
    >>> tup2 = (‘abc‘, ‘xyz‘)
    >>> tup3 = tup1 + tup2
    >>> tup3
    (12, 34.56, ‘abc‘, ‘xyz‘)

  2.可以用一个简单的函数调用把一个元组变成一个可变的列表,即可调用tuple()和list()函数对列表和元组间相互转化,以达到不同的目的

  3.若元组的一个元素是一个可变类型如列表,可以更新该列表元素以达到"更新"列表的目的

    >>> tp = ([‘xyz‘, 123], 23, -103.4)
    >>> tp
    ([‘xyz‘, 123], 23, -103.4)
    >>> tp[0][1]
    123
    >>> tp[0][1] = [‘abc‘, ‘def‘]
    >>> tp

    ([‘xyz‘, [‘abc‘, ‘def‘]], 23, -103.4)

如何移除一个元组的元素以及元组本身
  删除一个单独的元组元素是不可能的,当然,把不需要的元素丢弃后, 重新组成一个元组是没有问题的。

下面看看《python核心编程》关于列表与元组的核心笔记

核心笔记:列表 VS 元组
  一个经常会被问到的问题是,"为什么我们要区分元组和列表变量?"这个问题也可以被表述为“我们真的需要两个相似的序列类型吗?”,一个原因是在有些情况下,使用其中的一种类型要优于使用另一种类型。
  最好使用不可变类型变量的一个情况是,如果你在维护一些敏感的数据,并且需要把这些数据传递给一个并不了解的函数(或许是一个根本不是你写的API),作为一个只负责一个软件某一部分的工程师,如果你确信你的数据不会被调用的函数篡改,你会觉得安全了许多。
  一个需要可变类型参数的例子是,如果你在管理动态数据集合时。你需要先把它们创建出来,逐渐地或者不定期的添加它们,或者有时还要移除一些单个的元素。这是一个必须使用可变类型对象的典型例子。幸运的是,通过内建的list()和tuple()转换函数,你可以非常轻松的在两者之间进行转换.
  list()和tuple()函数允许你用一个列表来创建一个元组,反之亦然.如果你有一个元组变量,但你需要一个列表变量因为你要更新一下它的对象,这时list()函数就是你最好的帮手.如果你有一个列表变量,并且想把它传递给一个函数,或许一个API,而你又不想让任何人弄乱你的数据,这时tuple()函数就非常有用。

时间: 2024-08-28 10:20:29

认识Python 列表和元组的相关文章

Python列表、元组、字典和字符串的常用函数

Python列表.元组.字典和字符串的常用函数 列表方法 1.ls.extend(object) 向列表ls中插入object中的每个元素,object可以是字符串,元组和列表(字符串“abc”中包含3个元组),相当于ls和object合并.注意:object如果是整型,必须以列表的方式传入,不可以以整型或元组的方式传入 2.ls.append(object) 将object作为一个整体插入到ls最后,object可以是字符串,元组,列表和字典 3.ls.insert(index, object

python列表,元组的操作

python的列表是用于存放一组数据,表示形式 用 [ ]来表示 1,列表的常用方法: names = ['!alex', 'eric', 'rain', '2kity'] names.append('knochkapoor') #增加一个元素 names.count('alex') #统计alex数量 names.insert(0,'jlliu') #在第一个位置插入'julliu' names.remove('jlliu') #删除'jlliu' names.pop() #不加参数默认删除最

python列表和元组的方法和属性

python序列的共性 python序列包括列表和元组,序列都有索引,第一个元素索引为0,序列都可以进行索引.加.乘.切片.检查成员. python列表 列表是最常用的数据类型之一,通过[,,,]建立,可以给变量赋值空列表[].列表的数据项可以是不同类型的,可以嵌套. 列表的索引和字符串操作一样,同样可以截取例如a[1:2] / a[1:] / a[:3] 列表的更新: 1.修改:通过索引直接赋值来修改列表中的值. 2.新增:通过list.append(),在末尾处添加元素. 3.删除: A.通

第七节:python列表、元组、字典、集合

python个人笔记,纯属方便查询: ################################## ################################## ################################## i=['car','clothes','ipone']      #语法 i         #查看所有的元素 i[0]     #取第一个 i[1]     #取第二个 i[-1]    #取最后一个  i[0:10]   #取一个到第九个  i[-

python 列表、元组 详解

python中有6种序列的内置类型,分别为:列表,元组,字符串,Unicode字符串,buffer对象和xrange对象 列表和元组是最常见两种类型. 下面将以列表(list)和元组(tuple)为例对序列操作进行详细的讲解: 一.列表(list) 列表序列操作有:索引.切片.修改.追加.插入.删除.扩展.统计.排序(翻转).获取下标.拷贝 1. 索引 (list[i]) 列表的索引序号(又称为下标)如下图所示,该序列一共拥有n个元素, 从左到右索引是从 0 开始,  n-1 为最后一个元素 从

[python01] python列表,元组对比Erlang的区别总结

数据结构是通过某种方式组织在一起的数据元素的集合,这些数据元素可以是数字,字符,甚至可以是其他的数据结构. python最基本的数据结构是sequence(序列):6种内建的序列:列表,元组,字符串,Unicode字符串,buffer对象和xrange对象. 对比归纳:列表,元组在Erlang与python中的区别: 1. 通用操作: Python的列表更像是C中的数组,但是比那更灵活,和Erlang的列表大有不同. 1.1 python列表索引从0开始并可以是负数.可以使用 >>>nu

python列表,元组

python列表: 列表的格式为: list=["index1","index2",1,2] #list为列表名,index1,index2,1,2为列表元素. 上面就是一个简单的列表,那如何获取,输出列表中的元素呢?: #列表每个元素都有个下标,根据下标进行获取列表中的元素值: list=["index1","index2",1,2] print(list[1]) index2    #打印结果 #列表元素下标从0开始计算,

python 列表,元组,字符串方法和属性

python序列包含列表[].元组().字符串三种 -------列表-------------- 一.列表基本内容 1.建立:a=[1,2,3,5],通过[ , ,], >>>b=[6,7,8,9] 2.索引:a[0]=1 3.切片:a[0:2],a[:] 4.删除:del a[索引]; a.remove(5) :a.pop(索引),会返回删除的值 5.列表操作符: ‘+’表示拼接列表:*表示重复 >>> a+b [1, 2, 3, 5, 6, 7, 8, 9] &g

python 列表、元组、字典总结

转自:http://blog.csdn.net/yasi_xi/article/details/38384047 列表,元组,字典属于python中的三种内建的数据结构 1.列表 list是处理一组有序的数据结构,即你可以在一个列表中存储一个序列的项目. 列表中的项目,列表中的项目应该包括在方括号中,这样python就知道你是在指明一个列表.一旦你创建了一个列表,你就可以添加,删除,或者搜索列表中的项目.由于可以增加或删除项目,因此可以说列表是可变的数据类型,即这种类型是可以被改变的,并且列表时