python基础知识之列表
- 一.列表的创建方式
- 1.[ ]
- 2.list()
- 二.列表的索引
- 解析:
- 索引的调用:
- 1.基本用法:
- 2.函数index()
- 三.列表的增删改操作:
- 1.列表元素的增加
- ① 在列表末尾添加一个元素 append()
- ② 在列表末尾至少添加一个元素 extend()
- ③ 在列表的任意一个地方添加一个元素 insert()
- 2.切片
- ① 步长为正数:
- ②步长为负数:
- ③在任意位置上添加多个元素
- ④切片的其他操作
- 3.列表元素的删减
- ① remove() 函数
- ② pop() 函数
- ③del 删除列表 clear 清空列表
- 4.列表元素的修改
- ① 一次修改一个元素
- ② 运用切片 修改列表元素
- 四.列表元素的排序操作
- 1.sort()函数
- 2.sorted()函数
- 五. 列表生成式
- 六.判断指定元素是否在该列表中存在
一.列表的创建方式
1.[ ]
lst=['hehe','you',21,'you'] # []这种形式为 列表
输出结果为:
[‘hehe’, ‘you’, 21, ‘you’]
2.list()
lst2=list(['python','java',987,'python']) # 列表可以储存重复数据
print(lst2) #查看 值 value
print(id(lst2)) #查看 数据id
print(type(lst2)) #查看 数据类型
对应的输出结果为:
[‘python’, ‘java’, 987, ‘python’]
2178683755328
<class ‘list’>
二.列表的索引
解析:
列表中各个元素有相应的位置,这个位置叫做索引
各元素
从左向右依次增加的索引为正数,从0开始
从右向左依次减小的索引为负数,从-1开始
举例:
lst=['he','you',21,13,14]
各元素相对应的索引如下图所示: (‘/’:或者)
元素 | 索引 |
he | 0/-5 |
you | 1/-4 |
21 | 2/-3 |
13 | 3/-2 |
14 | 4/-1 |
索引的调用:
1.基本用法:
list1=[1,2,3,'hello',12,'hello']
print(list1[0])
print(list1[-1])
输出结果为:
1
hello
2.函数index()
对函数的解释:
index 是获取指定元素的索引
举例:
list1=[1,2,3,'hello',12,'hello']
print(list1.index('hello'))
print(list1.index(3,1,4))
print(list1.index(3,4,5))
对应的输出结果为:
3
2
print(list1.index(3,4,5))
ValueError: 3 is not in list
对此代码后两个print()的解释:
print(list1.index(3,1,4)) 中该处的 3 为列表中的一个元素,1,4的意思为:在索引1到4(不包含4)中查询,并输出3的索引,若不在此范围中,程序报错
print(list1.index(3,1,4)) 输出结果为:2
print(list1.index(3,4,5)) 输出结果为:报错
三.列表的增删改操作:
1.列表元素的增加
① 在列表末尾添加一个元素 append()
注:添加后 不产生新的列表
不产生新的列表的含义为添加过元素之后的列表与原列表的id相同
举例:
lst4=[1,2,3,4]
lst4.append(100)
print(lst4)
输出结果为:
[1,2,3,4,100]
lst4=[1,2,3,4]
lst5=['hello','you']
lst4.append(lst5)
print(lst4)
注:
把lst5看做一个元素 添加到lst4中
输出结果为:
[1, 2, 3, 4, 100, [‘hello’, ‘you’]]
② 在列表末尾至少添加一个元素 extend()
举例:
lst4=[1,2,3,4]
lst5=['hello','you']
lst4.extend(lst5)
print(lst4)
这是把lst5的元素加入到lst4列表的末尾
输出结果为:
[1, 2, 3, 4, 100, [‘hello’, ‘you’]]
③ 在列表的任意一个地方添加一个元素 insert()
lst5=['hello','you']
lst5.insert(1,31)
print(lst5)
在lst5中索引为 1 的位置上添加个 31
输出结果为:
[‘hello’, 31, ‘you’]
2.切片
概念:
切片 就是取下列表的一段元素 取过后则为一个 新 的列表(ip地址发生改变)
① 步长为正数:
代码举例:
lst3=[1,2,3,4,5,6,7,8,9]
print(lst3[1:7:2])
输出结果为:
[2,4,6]
对此代码的解释为:该切片从 索引为 1 开始到索引为 6 结束 步长为 2
注意步长 跳过 3 5 7
lst3=[1,2,3,4,5,6,7,8,9]
print(lst3[:7:])
输出结果为:
[1, 2, 3, 4, 5, 6, 7]
对此代码的解释为:该切片从索引为 0 开始到索引为 6 结束 步长默认为1
默认的参数:
[start:stop:step]
默认 start从 0 开始 stop到结束为止 步长为 1 也可 print(lst3[1:4]) 直接默认步长
②步长为负数:
步长为负数的时候,向反方向取元素
举例:
lst3=[1,2,3,4,5,6,7,8,9]
print(lst3[8:0:-2])
输出结果为:
[9,7,5,3]
对此代码的解释为;从索引为 8 的元素开始,到索引为 0 的元素结束, 反方向步长取 2
③在任意位置上添加多个元素
代码举例;
lst6=[12,121]
lst7=[11]
lst6[1:]=lst7
print(lst6)
输出结果为:
[12, 11]
对此代码的解释为;[start:stop] 从索引为1开始 到–结束 切掉换成lst7
④切片的其他操作
切片是产生一个新的列表 若不产生新的列表 而是删除原列表中的内容
代码举例:
lst8=[10,20,30,40]
lst8[1:3]=[]
print(lst8) #删除索引为 1和2的元素 不包括 3
输出结果为:
[10, 40]
此代码的解释为:删除索引为 1和2的元素 不包括 3
3.列表元素的删减
① remove() 函数
解释以及使用方法:
一次移除一个元素 重复元素移除第一个 lst.remove(需要移除的元素)
代码举例:
lst8=[1,2,3,4,5,6,7]
lst8.remove(2)
print(lst8)
输出结果为:
[1, 3, 4, 5, 6, 7]
注:
若代码如下操作:
lst8=[1,2,3,4,5,6,7]
print(lst8.remove(2))
输出结果为;
None/
② pop() 函数
解释以及使用方法:
移除指定索引上的一个元素 不指定则移除最后一个元素
lst.pop(需要移除的元素的索引)
代码举例;
lst8=[1,2,3,4,5,6,7]
lst8.pop(2)
print(lst8)
输出结果为:
[1, 2, 4, 5, 6, 7]
③del 删除列表 clear 清空列表
eg:
lst8.clear()
del lst8
4.列表元素的修改
① 一次修改一个元素
lst10=[1,2,3,4,5]
lst10[2]=100
print(lst10)
把lst10索引为2的元素修改为 100
输出结果为:
[1, 2, 100, 4, 5]
② 运用切片 修改列表元素
lst10=[1,2,3,4,5]
lst10[1:3:]=[100,200,300]
print(lst10)
默认步长为1 将索引为1至3 不包括3 的元素修改为该元素
输出结果为:
[1, 100, 200, 300, 4, 5]
四.列表元素的排序操作
1.sort()函数
lst10=[1,2,3,4,5]
lst10.sort(reverse=True)
print(lst10)
reverse=True降序排列。 reverse=False升序排列
2.sorted()函数
lst=sorted(lst10) 升序排列 lst=sorted(lst10,reverse=True) 降序排列
五. 列表生成式
lst11=[i for i in range(1,10)]
print(lst11)
输出1~10的整数 不包括10 先将1其存在 i 中 之后输出
lst11=[i*i for i in range(1,12)]
i*i 则输出就是其平方 意思就是 可以在这个位置做些文章
六.判断指定元素是否在该列表中存在
lst2=list(['python','java',987,'python'])
print(4 in lst2) #输出结果为 False
print('python' in lst2) #输出结果为 Ture