1 基础概念
列表一个值,列表值指的是列表本身,而不是列表中的内容
列表用[]
表示
列表中的内容称为 表项
len()
函数可以显示列表中表项的个数,比如下面这个例子
spam = ['cat', 'bat', 'dog', 'rat']
print(len(spam))
列表的范围选取中,比如
spam = ['cat', 'bat', 'rat', 'dog'],如果用spam[1:3],选中的内容是bat、rat和dog
两个数字中,第一个是开始的下标,第二个是结束处的下标,但不包括结束处
用del语句从列表中删除值,不过一般del语句不常使用
2 列表方法
-
index():用于查找列表中的内容,如果存在,返回0,不存在报错
-
append():在列表末尾添加内容
-
insert():可以指定位置插入内容
-
remove():用于产出列表中指定的内容
-
sort():用于排列列表,用sort()时不能数字和字符混用
-
- 数字按照数值大小排列
- 字符汉中ASCII排列
- 数字按照数值大小排列
这几个方法只使用于列表
spam = ['cat', 'bat', 'dog', 'rat']
print(spam.index('cat'))
spam.append('rabbit')
print(spam)
spam.insert(0, 'bird')
print(spam)
spam.remove('cat')
print(spam)
spam.sort()
print(spam)
3 元组和列表的强制类型转换
list()可以将强制转换为列表
tuple可以将强制转换为元组
spam = 'hello'
print(list(spam))
llist = list(spam)
llist.append('egg')
print(llist)
print(tuple(spam))
先定义一个spam变量,然后用list()将spam强制转换为列表类型
在将强制类型转换后的列表传递给llist,可以看到llist可以进行列表操作
这里有一点需要注意,举个例子说明这一点
spam = ['1', '2', '3', '4']
print(spam)
tmp = spam
print(tmp)
tmp[1] = '666'
print(tmp)
print(spam)
在第5行代码中,我只对tmp进行了操作,但当我打印spam的时候,发现spam的内容也跟着改变了
这是因为变量tmp是对列表的引用,而不是对列表值本身
有一点需要注意,tmp[n]中的n不能超过列表spam的长度
如果只想改变tmp的内容,不改变spam中的内容,可以用下面的方法
4 copy和deepcopy函数
import copy
spam = [1, 2, 3, 4]
chee = copy.copy(spam)
print(spam)
print(chee)
chee.append(5)
print(spam)
print(chee)
print('******************')
deep = copy.deepcopy(spam)
print(deep)
print(spam)
deep.append(6)
print(deep)
print(spam)
可以看到在使用copy 和deepcopy函数后,再发生更改并没有改变spam的内容
至于这几种方法有什么区别,等我再研究研究
5 列表和元组的区别
列表 | 元组 |
---|---|
符号为:[] | 符号为:() |
可以修改、添加、删除 | 不能修改、添加、删除 |