【技术贴】python数据类型之列表

Python021

【技术贴】python数据类型之列表,第1张

列表是由一系列按特定顺序排列的元素组成的。在Python中,用[]来表示列表,并用逗号来分隔其中的元素。

我们可以创建包含字母,数字或者任何东西的列表。其中列表中的元素之间可以没有任何的关系。由于列表通常包含多个元素,再给创建的列表命名时,一般使用复数的名称,如names.

names = ["kitty","anne","jerry"]

print(names)

输出的结果为方括号[] 引号 '' 元素

['kitty', 'anne', 'jerry']

注意:列表的偏移量是从0开始的,而不是我们习惯的 1 开始

teacher=['七七','卡西','延君']

teacher[0]='七七'

teacher[1]='卡西'

teacher[2]='延君'

口诀:“左右空,取到头;左要取,右不取”

teacher=['七七','卡西','延君']

teacher[:2]=['七七','卡西']

格式:列表.append('元素名')

teacher=['七七','卡西','延君']

teacher.append('琦玉')  

# 结果为 teacher=['七七','卡西','延君','琦玉']

list.extend([元素1,元素2]):在list列表末端增加多个元素;

list.insert(元素序号,元素):在list列表任意位置增加一个元素

 

teacher=['七七','卡西','延君','琦玉']

del teacher[3]

# 结果为 teacher=['七七','卡西','延君']

>>>str=[0,1,2,3,4,5,6]

>>>del str[2:4] #删除从第2个元素开始,到第4个为止的元素(但是不包括尾部元素)

>>>str

[0, 1, 4, 5, 6]

>>>str=[0,1,2,3,4,5,6]

>>>del str

>>>str #删除后,找不到对象

Traceback (most recent call last):File "<pyshell#27>", line 1, in <module>strNameError: name 'str' is not defined

注意:del是删除引用(变量)而不是删除对象(数据),对象由自动垃圾回收机制(GC)删除。

 

1,a = list.count(元素):计算它的参数在列表中出现的次数,并将次数返回;

2,a = list.index(元素):返回它的参数在列表中的位置,返回元素序号;#若有多个元素相同,此为只返回首端起第一个。

3,a = list.index(元素, 序号1,序号2):在序号1和序号2范围内,返回列表中元素位置。 #若有多个元素相同,此为只返回首端起第一个。

4,list.reverse() == list[::-1]:将整个列表内元素反过来排列:[1, 2, 3, 4].reverse() == [4, 3, 2, 1];

5,list.sort():将所有元素,从小到大排列;

6.sorted方法

sorted返回一个有序的副本,并且类型总是列表,如下:

变量的引用

变量和数据都是保存在内存中的

变量和数据是分开存储的

数据保存在内存中某个位置,通过地址来标记

变量保存的是数据的地址,通过地址可以找到数据在内存空间的位置

把变量保存数据地址的过程称为引用

变量的重新赋值修改的是变量中引用数据的内存地址

变量之间的赋值实际是引用的传递

函数参数的传递,本质也是引用的传递

函数的返回值本身也是引用的传递

可变和不可变类型

不可变类型,内存中的数据不允许被修改:数字类型(int,bool,float,complex,long(2,x)、字符串、元组(tuple)

可变类型,内存中的数据可以被修改:列表list、字典dict

无论是可变还是不可变数据类型,通过赋值语句,都会改变变量的引用

Hash函数只能接收不可变数据类型,字典的键也只能是不可变数据类型,字典的value值可以是任意数据类型

局部变量

1.在函数内部定义的变量就是局部变量(作用范围只能是当前函数内部)

2.在函数外部无法直接访问局部变量

3.不同的函数中可以定义同名的局部变量

4.局部变量的生命周期:从定义变量时开始,到函数运行结束

全局变量

1.在所有函数外边定义的变量就是全局变量

2.让所有函数都能访问到,可以作为函数通信的桥梁

3.一般情况下,为了和普通变量的区别,需要加上g_或gl_前缀

4.全局变量一般放在所有函数的最上面

5.在函数内部修改全局变量,必须要加上global关键字,如果不加global只是定义了一个同名的局部变量

函数的多个返回值

1、number

即数字类型,包含int(整型)、float(浮点型)、bool、complex(复数类型)四种基本类型,可用于存储数值

类型转换:int()、float()

数学运算:+、-、*都与C语言相同,/表示做触发(结果一定为浮点数),//表示做除法,(结果只保留整数部分,去掉小数部分)% 表示做求余运算**

表示做幂次方运算 (注意运算次序)

2、string

即字符串类型,字符串需要用单引号’’或双引号" "括起来 三引号–注释,字符串也是一种特殊的元组。不能改变字符串中的某个元素的值

基础操作:索引、切片、乘法-多次输出、成员资格检查、长度len()、最大值、最小值

3、list

即列表类型,list的数据项可以是不同类型,其各个元素也可以改变,list是使用[]方括号包含各个数据项,+多个列表进行合并成一个列表*列表重复输出多次in某个项是否在列表中,可对列表项进行添加、修改、删除。

4、tuple

即元组类型,tuple 是使用( )小括号包含各个数据项,tuple与list的唯一区别是tuple的元素是不能修改,而list的元素可以修改。

5、set

即集合类型,是一个无序不重复元素的序列,使用大括号{}或者set()函数创建集合,用set()创建一个空几个,使用set也可以去重。

6、dictionary

即字典类型,字典的每个元素是键值对,无序的对象集合,是可变容器模型,且可存储任意类型对象,可以通过键来引用,键必须是唯一的且键名必须是不可改变的(即键名必须为Number、String、元组三种类型的某一种),但值则不必。