我们可以创建包含字母,数字或者任何东西的列表。其中列表中的元素之间可以没有任何的关系。由于列表通常包含多个元素,再给创建的列表命名时,一般使用复数的名称,如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、元组三种类型的某一种),但值则不必。