一篇搞定python基础(七)
【摘要】 python入门基础(七),这篇文章主要介绍了列表。为什么需要列表 变量可以存储一个元素,列表可以存储多个元素,程序可以方便的对这些数据进行整体操作 列表相当于其他语言中的数组
二十二、列表
22.1、为什么需要列表
- 变量可以存储一个元素,列表可以存储多个元素,程序可以方便的对这些数据进行整体操作
- 列表相当于其他语言中的数组
22.2、列表对象的创建
'''创建列表第一种方式,使用[]'''
lst=['hello','world',98]#采用顺序索引,第一个为0,采用倒序索引,最后一个为-1
print(lst)
print(lst[0],lst[-3])
结果为:
['hello', 'world', 98]
hello hello
'''创建列表第二种方式,使用内置函数list()'''
lst2=list(['hello','world',98])
print(lst2)
结果为:
['hello', 'world', 98]
22.3、列表的特点
- 列表元素按顺序有序排序
- 索引映射唯一一个数据
- 列表可以存储重复数据
- 任意数据类型混存
- 根据需要动态分配和回收内存
22.4、获取指定元素的索引
'''获取指定元素的索引'''
lst=['hello','world',98,'hello']
print(lst.index('hello'))#如果列表存在多个相同元素,只返回第一个元素的索引
#print(lst.index('python'))#如果查询的元素不在列表中,就会出现ValueError: 'python' is not in list
print(lst.index('hello',1,4))#还可以在指定的范围内查找
结果为:
0
3
22.5、获取列表中指定的元素
- 正向索引从0到N-1,举例lst[0]
- 逆向索引从-N到-1,举例lst[-N]
- 指定索引不存在,就出现IndexError: list index out of range
22.6、获取列表中的多个元素—切片操作
'''获取列表中的多个元素---切片操作'''
lst=[10,20,30,40,50,60,70,80,90]
#开始=1 结束=6 步长=1
print(lst[1:6:1])
print('原列表',id(lst))
lst2=lst[1:6:1]
print('切的片段:',lst2)#切片的结果是对原列表片段的拷贝
结果为:
[20, 30, 40, 50, 60]
原列表 2673939921216
切的片段: [20, 30, 40, 50, 60]
'''切片操作
1.切片的结果:原列表片段的拷贝
2.切片的范围:[开始,结束]
3.步长默认1:简写为[开始:结束]
4.步长为正数:从开始往后计算切片
[:结束:步长] 切片的第一个元素默认为列表的第一个元素
[开始::步长] 切片的最后一个元素默认为列表的最后一个元素
5.步长为负数:从结尾往前计算切片
[:结束:步长] 切片的第一个元素默认为列表的最后一个元素
[开始::步长] 切片的最后一个元素默认为列表的第一个元素
'''
#步长为正数
print(lst[1:6])#默认步长1
print(lst[1:6:])#开始1 结束5 步长1
print(lst[1:6:2])#开始1 结束5 步长2
print(lst[:6:2])#开始0 结束5 步长2
print(lst[1::2])#开始1 步长2
结果为:
[20, 30, 40, 50, 60]
[20, 30, 40, 50, 60]
[20, 40, 60]
[10, 30, 50]
[20, 40, 60, 80]
#步长为负数
print(lst[::-1])
print(lst[7::-1])#开始7 步长-1
print(lst[6:0:-2])#开始6 结束0 步长-2
结果为:
[90, 80, 70, 60, 50, 40, 30, 20, 10]
[80, 70, 60, 50, 40, 30, 20, 10]
[70, 50, 30]
22.7、列表元素的判断及遍历
#列表元素的判断及遍历
lst=[10,20,'python','hello']
print(10 in lst)
print(100 in lst)
print(10 not in lst)
print(100 not in lst)
结果为:
True
False
False
True
#遍历列表中的元素
for item in lst:
print(item)
结果为:
10
20
python
hello
22.8、列表元素的增删改操作
-
列表元素的增加
#向列表的末尾添加一个元素 lst=[10,20,30] print('添加元素之前:',lst,id(lst)) lst.append(100) print('添加元素之后',lst,id(lst)) 结果为: 添加元素之前: [10, 20, 30] 2351725689024 添加元素之后 [10, 20, 30, 100] 2351725689024 #向列表末尾添加多个元素 lst2=['hello','world'] lst.extend(lst2)#将lst2作为一个元素添加到列表的末尾 print(lst) 结果为: [10, 20, 30, 100, 'hello', 'world'] #在任意位置添加一个元素 lst.insert(1,90) print(lst) 结果为: [10, 90, 20, 30, 100, 'hello', 'world'] #在任意位置添加多个元素(切片) lst3=[True,False,'hello'] lst[1:]=lst3#从索引为1的地方开始,把后面所有的内容切掉,再替换成lst3的内容 print(lst) 结果为: [10, True, False, 'hello']
-
列表元素的删除
'''列表元素的删除操作''' lst=[10,20,30,40,50,60,30] lst.remove(30)#从列表中移除一个元素,有重复元素只移除第一个 print(lst) #lst.remove(100)#元素不存在就报错ValueError: list.remove(x): x not in list 结果为: [10, 20, 40, 50, 60, 30] #pop()根据索引移除元素 lst.pop(1)#移除索引为1的元素 print(lst) #lst.pop(10)#指定的索引位置不存在就报错IndexError: pop index out of range print(lst) lst.pop()#不指定索引就移除列表最后一个元素 print(lst) 结果为: [10, 40, 50, 60, 30] [10, 40, 50, 60, 30] [10, 40, 50, 60] '''切片操作--删除至少一个元素,将产生一个新的列表对象''' new_list=lst[1:3] print('原列表',lst) print('切片后的列表',new_list) 结果为: 原列表 [10, 40, 50, 60] 切片后的列表 [40, 50] '''不产生新的列表对象,而是删除原列表中的内容''' lst[1:3]=[] print(lst) 结果为: [10, 60] '''清除列表中的所有元素''' lst.clear() print(lst) 结果为: [] '''del语句将列表对象删除''' del lst #print(lst)#列表对象删除后就报错NameError: name 'lst' is not defined
-
列表元素的修改
lst=[10,20,30,40] #使用索引修改一个值 lst[2]=100 print(lst) 结果为: [10, 20, 100, 40] #使用切片修改多个值 lst[1:3]=[300,400,500,600] print(lst) 结果为: [10, 300, 400, 500, 600, 40]
22.9、列表元素的排序操作
lst=[20,40,10,98,54]
print('排序前的列表',lst)
#开始排序,调用列表对象的sort()方法,升序排序
lst.sort()
print('排序后的列表',lst)
结果为:
排序前的列表 [20, 40, 10, 98, 54]
排序后的列表 [10, 20, 40, 54, 98]
#通过指定关键字参数,将列表中的元素进行降序排序
lst.sort(reverse=True)#reverse=True表示降序排序,reverse=False表示升序排序
print(lst)
结果为:
[98, 54, 40, 20, 10]
#使用内置函数sorted()对列表进行排序,将产生一个新的列表对象
lst=[20,40,10,98,54]
print('原列表',lst)
#开始排序
new_list=sorted(lst)
print(new_list)
结果为:
原列表 [20, 40, 10, 98, 54]
[10, 20, 40, 54, 98]
#指定关键字参数,实现列表元素的降序排序
desc_list=sorted(lst,reverse=True)
print(desc_list)
结果为:
[98, 54, 40, 20, 10]
22.10、列表生成式
#列表生成式
lst=[i*i for i in range(1,10)]
print(lst)
结果为:
[1, 4, 9, 16, 25, 36, 49, 64, 81]
'''列表中的元素值为2,4,6,8,10'''
lst2=[i*2 for i in range(1,6)]
print(lst2)
结果为:
[2, 4, 6, 8, 10]
二十三、字典
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)