zoukankan      html  css  js  c++  java
  • python 数据结构

    Python 的元组与列表类似,不同之处在于元组的元素不能修改(元素的元素是可以修改的)。

    元组使用小括号,列表使用方括号。

    元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

    创建元组方式:

    1 >>> t = (1,2.0,'a','sd',[3,4],)
    2 >>> t1 = 1,2.0,'a','sd',[3,4],
    3 >>> t
    4 (1, 2.0, 'a', 'sd', [3, 4])
    5 >>> t1
    6 (1, 2.0, 'a', 'sd', [3, 4])
    7 >>> 

    还有用tuple()创建,如创建一个空元组:  t = tuple()

    注:当元组里面只有一个元素时,在元素后面要加上 ',' , eg: t = ('tuple',)

    由于元组的元素不可改变的特性,导致元组没有类似列表那种能直接对元组自身更改的方法。所以元组常用方法如下:

    1 t.count(x)
    2 '''元素x在元组里面出现的次数,不存在则返回0次'''
    3 t.index(x)
    4 '''元素x在元组中的索引,不存在就返回错误'''

    还有python内置函数:

    1 max(t)
    2     '''返回元组t中最大值'''
    3 min(t)
    4     '''返回元组t的最小值'''
    5 len(t)
    6     '''返回元组t的长度(元素个数)'''
    7 tuple(seq)
    8     '''把一个序列seq转换为元组'''

    因为元组有序,支持索引,所以元组可以进行切片,指定索引取值。利用分片也可以进行插入,但是插入后是重新开辟内存,与原来的元组是不同的。

    1 >>> t = ('a','b','c','d','e',)
    2 >>> t[1:4]
    3 ('b', 'c', 'd')
    4 >>> t1 = t[0:2] + ('hello',) + t[2:]
    5 >>> t1
    6 ('a', 'b', 'hello', 'c', 'd', 'e')
    7 >>> t
    8 ('a', 'b', 'c', 'd', 'e')
    9 >>>

    虽然元组元素是不能改变的,但是元素的元素是可以改变的。

     1 >>> m = (1,2.0,'a','sd',[3,4],)
     2 >>> m[3]
     3 'sd'
     4 >>> m[3] = 'am'
     5 Traceback (most recent call last):
     6   File "<pyshell#24>", line 1, in <module>
     7     m[3] = 'am'
     8 TypeError: 'tuple' object does not support item assignment
     9 >>> m[4]
    10 [3, 4]
    11 >>> m[4][1] = 'aaa'
    12 >>> m
    13 (1, 2.0, 'a', 'sd', [3, 'aaa'])
    14 >>> 

    删除元组:

    元组中的元素是不能更改的,所以这里的 del 删除是删除整个元组:

     1 >>> m = (1, 2.0, 'a', 'sd', [3, 'aaa'])
     2 >>> m
     3 (1, 2.0, 'a', 'sd', [3, 'aaa'])
     4 >>> del m
     5 >>> m
     6 Traceback (most recent call last):
     7   File "<pyshell#32>", line 1, in <module>
     8     m
     9 NameError: name 'm' is not defined
    10 >>> 

    与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。

    Python 表达式结果描述
    len((1, 2, 3)) 3 计算元素个数
    (1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) 连接
    ('Hi!',) * 4 ('Hi!', 'Hi!', 'Hi!', 'Hi!') 复制
    3 in (1, 2, 3) True 元素是否存在
    for x in (1, 2, 3): print(x), 1 2 3 迭代
  • 相关阅读:
    hdu 4612 Warm up 双连通缩点+树的直径
    Hadoop-04-HBase全然分布式环境搭建
    java实现的Trie树数据结构
    Sharpui企业版-简单介绍【01】 【QQ群:206378966】
    Apache Mina开发手冊之四
    POJ训练计划1459_Power Network(网络流最大流/Dinic)
    svn+ssh
    Android首席设计师宣称移动概念已死,开发人员应该面向屏幕编写应用而非移动
    连锁快餐企业软件的一些管理
    多进程解决datasnap支持的tcp长连接数量少的问题
  • 原文地址:https://www.cnblogs.com/xtsec/p/6573013.html
Copyright © 2011-2022 走看看