第四节 列表
1.创建列表 不同元素之间用英文的逗号符号隔开
例1
>>> [1,2,3]
[1, 2, 3]
例2
>>> [1,2,3,'sss']
[1, 2, 3, 'sss']
2.下标索引访问元素
>>> word=[1,2,3,'www']
>>> word[0]
1
>>> word[1]
2
注 列表下标最后一个元素索引值可以为-1,倒数第二个可以为-2 所以以此类推
例
>>> word[-1]
'www'
3.直接获取列表元素的长度
length=len(列表名称)
4.列表切片
列表名称[起始:结束:切片数]
>>> word[0:1]
[1]
>>> word[0:2]
[1, 2]
>>> word[:4]
[1, 2, 3, 'www']
word[4:]
IndentationError: unexpected indent
>>> word[4:]
[]
>>> word[1:]
[2, 3, 'www']
>>> word[0:]
[1, 2, 3, 'www']
>>> word[: : -1]
['www', 3, 2, 1]
倒序输出
5.增加字符
heros=["包子“,”牛奶","豆浆"]
heros.append("麻圆")
print(heros)
>>>>>['包子', '牛奶', '豆浆', '麻圆']
heros.extend(["油条","奶黄包"])
print(heros)
>>>>>['包子', '牛奶', '豆浆', '麻圆', '油条', '奶黄包']
heros=["包子","牛奶","豆浆"]
heros.append("麻圆")
print(heros)
heros.extend(["油条","奶黄包"])
print(heros)
heros[len(heros):]=["面条","炒粉"]
print(heros)
#在任意列表添加参数
heros.insert(1,"蒸饺")
print(heros)
#输出结果为['包子', '蒸饺', '牛奶', '豆浆', '麻圆', '油条', '奶黄包', '面条', '炒粉']
#删除指定的元素
heros.remove("蒸饺")
print(heros)
#输出结果为['包子', '牛奶', '豆浆', '麻圆', '油条', '奶黄包', '面条', '炒粉']
#1.如果列表有多个匹配删除的元素的话,只会删除第一个元素2.如果指定元素不存在,程序就会出现错误
#删除某个位置上的元素 可以使用pop方法
heros.pop(2)
print(heros)
#执行结果为['包子', '牛奶', '麻圆', '油条', '奶黄包', '面条', '炒粉']
#改变列表里元素的值
heros[2]="炒饭"
print(heros)
#执行结果为['包子', '牛奶', '炒饭', '油条', '奶黄包', '面条', '炒粉']
heros[1:3]=["西瓜","火龙果"]
print(heros)
#执行结果['包子', '西瓜', '火龙果', '油条', '奶黄包', '面条', '炒粉']
#使用sort函数直接从小到大排序
nums=[1,1,0,7,4,3,9]
nums.sort()
print(nums)
#使用reverse函数直接从大到小排序
nums.reverse()
print(nums)
#查看元素列表
#value=nums.count(1)
#print(value)
#指定查找索引的值
#index(x,开始,结束)
value1=nums.index(7,1,7)
print(value1)
#拷贝列表 copy()函数
nums_copy1=nums.copy()
print(nums_copy1)
#第二种拷贝方式
nums_copy2=nums[:]
print(nums_copy2)
#列表的拼接
s=[1,2,3,4]
t=[2,6,9]
print(s+t)
#执行结果为[1, 2, 3, 4, 2, 6, 9]
print(s*3)
#执行结果[1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]
#嵌套列表
insertlist=[[1,2],[3,4]]
for each in insertlist:
for i in each:
print(i)
#访问嵌套列表的元素
insertlist[0]
print(insertlist[0])
#访问嵌套列表的具体元素
insertlist[0][0]
print(insertlist[0][0])
#python字符串是不变的 引入is语句
s="lizhi"
t="lizhi"
print(s is t)
#执行结果为true
s1=[1,2,3]
t1=[1,2,3]
print(s1 is t1)
#执行结果为false
#浅拷贝 只是引用了列表
#x=[[1,2,3],[2,4,6]]
#y=copy.copy(x)
#x[1][1]=0
#print(x)
#print(y)
#输出结果为 [[1, 2, 3], [2, 0, 6]] [[1, 2, 3], [2, 0, 6]] 只改变了x,y也跟着改变
#深拷贝 需要引用copy模块
x=[[1,2,3],[2,4,6]]
y=copy.deepcopy(x)
x[1][1]=0
print(x)
print(y)
#输出结果为[[1, 2, 3], [2, 0, 6]] [[1, 2, 3], [2, 4, 6]]