深入理解python列表和元组

Python012

深入理解python列表和元组,第1张

列表和元组都是一个可以放置任意数据类型的有序集合。这里需要注意三个词,任意、有序、集合,其实就是说明列表和元组是可以放置任意数据类型,其次是有序的,另外,它是一个集合。

列表是动态的,它的长度大小不固定的,可以随意的增加、删除或者改变。

元组是静态的,它的长度大小是固定的,无法增加、删除或者改变。

列表是动态的、可变的,而元组是静态的、不可变的。

列表的存储方式,如下所示:

元组的存储方式,如下所示:

存储同样的元素,元组使用的存储空间更小,要少16个字节。这是因为列表是动态的,所以列表中要存储指针,来指向对应的元素。另外,列表是可变的,所以需要额外存储已经分配的存储信息,因为它要知道现在已经存储了多少信息,还剩下多少,需不需要额外分配存储空间等等。所以,列表多出来的存储空间主要是:指针 + 存储空间长度。

如下例子可以看到列表存储空间的变化:

列表存储空间变化:

从列表和元组的存储方式可以得出,元组的性能是优于列表的。

元组和列表的初始化性能比较:

1.列表可以看成是动态数组,它们是可变的并且可以重新设定长度

2.元组可以看成是静态的数组,它们是不可变的,并且长度也是一旦创建就无法改变

从设计上来说:

1.列表是用来保存多个相互独立对象的数据集合

2.元组设计的初衷就是为了描述一个不会改变的事物的多个属性

元组常见的操作

结论

元组和列表都是容器对象,都可以存放不同类型的数据内容.它们主要有两个不同点

第一: 列表的声明用中括号,元组的声明用小括号,并且元组只有一个元素的时候需要在后面加逗号

第二: 列表是可变的,元组是不可变的.元组一旦被定义,里面的元素和个数就不能改变了.

Python中有六个标准的数据类型:Number(数字),String(字符串),List(列表),Tuple(元组),Set(集合),Dictionary(字典)。其中:Number(数字)、String(字符串)、Tuple(元组)是不可变数据,其余三种是可变数据。

转义字符

输出结果

布尔值

布尔值是一个逻辑值,只有真(True)和假(False)

输出结果

Python数据结构包括列表(list)、元组(tuple)、集合(set)、字典(dict)等,这里主要讲解列表,列表有两个特点:

输出结果

修改表中元素

输出结果

列表中插入元素

输出结果

输出列表中的元素

输出结果

元素是否在列表元素中及统计个数

输出结果

查找某个元素在列表中的位置

输出结果

顺序结构

输出结果

if 条件 1

输出结果

if 条件 2

输出结果

循环结构

输出结果

循环语句求和

输出结果

可重复,类型可不同。 类型不同也是跟数组最本质的区别。 python里的列表用“[]”表示: 

对比a和b的结果

列表的 --- 增 -- 删 -- 改 -- 查

循环输出列表内容,在结尾添加指定的内容

字符串是 Python 中最常用的数据类型。 我们可以使用引号('或")来创建字符串。

元组与列表相似,不一样之处在于 元组的元素不能修改。

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

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

字典是另外一种可变容器模型,且可存储任意类型对象。

字典的每一个键值(key=>value)对用冒号(:)分割,每一个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式以下所示:

d = {key1 : value1, key2 : value2 }

字典函数

集合(set)是一个 无序的不重复元素序列。

可使用大括号 { } 或者 set() 函数建立集合,注意:建立一个空集合必须用 set() 而不是 { },由于 { } 是用来建立一个空字典。

它的主要做用以下: 1.去重,把一个列表变成集合,就自动去重了 。2.关系测试,测试两组数据以前的交集、差集、并集等关系。

关系测试

输出结果

元素的添加和删除