列表
列表 — 增删查改之增与查
列表是容器型数据类型(序列);将[]作为容器的标志,里面多个元素用’,'隔开:
[元素1,元素2,元素3…元素N]
列表是可变的:
元素的个数、值(值类型)及顺序 — 增、删、改
列表是有序的 — 支持小标操作
列表对元素的要求:
无要求;无论什么数据均可放入列表。
# 空列表
list1 = []
print(type(list1)) #<class 'list'>
print(bool(list1)) #False
print(len(list1)) #0
列表可同时保存多种类型数据;
list2 = [1,'一',1.1]
print(list2) #[1, '一', 1.1]
1、查
查,就是获取元素。查又分为3种情况:
- 获取单个元素;
- 遍历;
- == 切片。==
其中切片会在下片文章中详细解读。
1、获取单个元素
语法
列表[下标]
功能
获取列表中指定下标对应的元素
说明
列表 — 任何结果是列表的表达式(保存列表的变量、具体的列表值);
[] — 固定写法;
下标 — 下标又叫索引,是元素在有序序列中的位置信息。
Python中有序序列中每个元素都有两组下标:
分别为:从前往后从0开始依次递增的下标值;从后往前从-1开始递减的下标值。
注意:下标的使用不能越界
hero_name = ['吕布','貂蝉','赵云','成吉思汗','伽罗']
print(hero_name[1]) #貂蝉
2、遍历
for 变量 in 列表:
循环体
- 方式一
for i in hero_name:print(i) #吕布 貂蝉 赵云 成吉思汗 伽罗
- 方式二 — 先获取到每个元素的下标值,然后通过下标再获取元素
for 下标 in range(len(her_name)):
循环体
for index in range(len(hero_name)):print(index,hero_name[index])#0 吕布 1 貂蝉 2 赵云 3 成吉思汗 4 伽罗
- 方式三 — 同时获取列表中每个元素和元素对应的下标
for 下标,元素 in enumrate(列表):
循环体
for index,item in enumerate(hero_name):print(index,item)#0 吕布 1 貂蝉 2 赵云 3 成吉思汗 4 伽罗
针对以上三种做法,有以下三个小练习:
# 练习1 --- 统计不及格人数
scores = [89, 67, 56, 90, 98, 30, 78, 51, 99]
count = 0
for i in scores:if(i < 60):count += 1
print('不及格人数有:',count)# 练习2:统计列表中整数的个数
summary = 0
list7 = [89, 9.9, 'abc', True, 'abc', '10', 81, 90, 23]
for index in range(len(list7)):if(type(list7[index]) == int):summary += 1
print('list7中整数个数有:',summary,'个')# 练习3:求nums中所有偶数的和
summary1 = 0
nums = [89, 67, 56, 90, 98, 30, 78, 51, 99]
print('列表中偶数的下标分别为:')
for index,item in enumerate(nums):if(item % 2 == 0):summary1 += itemprint(index,end=' ')
print()
print('列表中偶数的和是:',summary1)
2、增
1.添加单个元素
列表.append(元素) — 在列表最后添加一个元素;
列表.insert(下标,元素) — 在指定下标对应元素前面插入元素。
movies = ['哥斯拉','金刚','桃花侠大战菊花怪']
print(movies) #['哥斯拉', '金刚', '桃花侠大战菊花怪']movies.append('肖申克的救赎')
print(movies) #['哥斯拉', '金刚', '桃花侠大战菊花怪', '肖申克的救赎']movies.insert(2,'钢铁侠')
print(movies) #['哥斯拉', '金刚', '钢铁侠', '桃花侠大战菊花怪', '肖申克的救赎']
2. 批量添加
列表1.extend(列表2) — 将列表2元素全部添加到列表1中。
movies.extend(['让子弹飞','触不可及'])
print(movies) #['哥斯拉', '金刚', '钢铁侠', '桃花侠大战菊花怪', '肖申克的救赎', '让子弹飞', '触不可及']
3.小练习
#将所有及格的分数提取出来
scores = [89, 67, 56, 90, 98, 30, 78, 51, 99]
new_scores = []
for score in scores:if(score >= 60):new_scores.append(score)
print('及格的分数有:',new_scores) #及格的分数有: [89, 67, 90, 98, 78, 99]
其余操作(删、改)以及切片还有更多的关于列表的操作会在下篇文章分享。


发布评论