1.25学习总结

1.25学习总结

列表

1.什么是列表

​ 列表是容器型数据类型,用[]作为标志,里面多个元素用逗号隔开:[元素1,2,3,。。。]列表是可变的(里面的个数、值、顺序都是可变);列表是有序的(元素有固定下标)
​ 元素:任何python支持的类型数据都可以作为列表,同一个列表的元素的类型可以不同

list1 = []  # --空列表
list2 = [10, 20, 30, '张三', 12.5]
list3 = [10, 20, [23, 53]]  # ---三个元素
print(list3)

2.获取元素----查

1.获取单个元素

​ 语法:列表[下标] —获取元素下标确定的元素
​ 下标:又叫索引,代表元素的位置信息。
​ 值得范围有两种:1).元素从左往右,是从0开始依次增加(通用)

​ 2).元素从右往左对应的下标,是从-1开始依次减少(python特有)
​ 下标越界

heroes = ['鲁班七号', '后裔', '马可波罗', '虞姬', '孙尚香']
print(heroes[1])		# 后裔
print(heroes[3])		# 虞姬
print(heroes[-2])		# 虞姬
print(heroes[-3])		# 马可波罗
# print(heroes[6])    IndexError: list index out of range
# 练习:获取列表heroes中的马克波罗
print(heroes[2])
print(heroes[-3])
2.遍历

​ 方法一:直接获取
​ for 变量 in 列表:
​ 循环体
​ 方法二:通过下标遍历,获取元素(稍许复杂)
​ len(列表) --获取列表的长度(获取列表元素个数)
​ for 变量 in range(len(列表)): —0到(列表长度-1),刚好和下标相对应
​ 循环体

for x in heroes:
    print('x : ', x)
# 练习:定义一个列表保存一个班所有学生的分数
# 1. 求所有学生的总分
# 2. 统计不及格学生的个数
scores = [45, 67, 89, 90, 77, 23, 50]
sum1 = 0
count = 0
for x in scores:
    print(x)
    sum1 += x
    if x < 60:
        count += 1
print('总分:', sum1, '不及格个数为:', count)		# 总分: 441 不及格个数为: 3

# 练习:打印位置在偶数位上的元素   ----通过下标来获取元素
# 1))
for index in range(len(scores)):
    if index & 1 == 0:
        print(scores[index])
print('===================================')
# 2))
for index in range(0, len(scores), 2):
    print(scores[index])
3.获取部分元素 —返回一个小列表

​ 列表[开始下标:结束下标:步长]
​ 步长为正:[开始下标:结束下标),“从前往后”,左闭右开区间(结束下标取不到)
​ 步长为负:[开始下标:结束下标),”从后往前“,下标增加步长(相当于减)

heroes = ['鲁班七号', '后裔', '马可波罗', '虞姬', '孙尚香']
print(heroes[1:4:1])    # ['后裔', '马可波罗', '虞姬']
print(heroes[1:4:2])    # ['后裔', '虞姬']
print(heroes[0:-1:1])   # ['鲁班七号', '后裔', '马可波罗', '虞姬']
print(heroes[1:4:-1])   # []    返回空列表。区间范围不对(从后往前取)
print(heroes[4:1:1])    # []    返回空列表。区间范围不对(从前往后取)
print(heroes[-1:-4:1])  # []    返回空列表。区间范围不对(从前往后取)
print(heroes[-1:0:-2])  # ['孙尚香', '马可波罗']
  1. 省略步长:列表[开始下标:结束下标] == 列表[开始下标:结束下标:1]
# 从开始下标开始,一直到结束下标为止
heroes = ['鲁班7号', '后裔', '马可波罗', '虞姬', '孙尚香', '狄仁杰', '百里守约']
print(heroes[1:5])      # ['后裔', '马可波罗', '虞姬', '孙尚香']
print(heroes[-5:-2])    # ['马可波罗', '虞姬', '孙尚香']
print(heroes[0:-3])     # ['鲁班7号', '后裔', '马可波罗', '虞姬']
print(heroes[-1:2])     # []
print(heroes[0:7])      # ['鲁班7号', '后裔', '马可波罗', '虞姬', '孙尚香', '狄仁杰', '百里守约']

2)省略开始下标:
列表[:结束下标:步长] :如果步长为正,从第一个元素开始,往后;如果为负,从最后一个元素,往前。
列表[:结束下标]

print(heroes[:3])       # ['鲁班7号', '后裔', '马可波罗']
print(heroes[:3:-1])    # ['百里守约', '狄仁杰', '孙尚香']
print(heroes[:-3:1])    # ['鲁班7号', '后裔', '马可波罗', '虞姬']
print(heroes[:-5:-2])   # ['百里守约','孙尚香']
print(heroes[:4:3])     # ['鲁班7号',''虞姬]
  1. 省略结束下标:步长为正,结束下标省略,从开始下标取到最后;步长为负,从后往前,取到第一个元素
    列表[开始下标::步长]
    列表[开始下标:]
heroes = ['鲁班7号', '后裔', '马可波罗', '虞姬', '孙尚香', '狄仁杰', '百里守约']
print(heroes[2::2])     # ['马可波罗', '孙尚香', '百里守约']
print(heroes[-3::-1])   # ['孙尚香', '虞姬', '马可波罗', '后裔','鲁班7号']

4)一起省

print(heroes[::2])      # ['鲁班7号', '马可波罗', '孙尚香', '百里守约']
print(heroes[:])        # 取整个列表 ['鲁班7号', '后裔', '马可波罗', '虞姬', '孙尚香', '狄仁杰', '百里守约']
print(heroes[::-1])     # 表逆序 ['百里守约', '狄仁杰', '孙尚香', '虞姬', '马可波罗', '后裔', '鲁班7号']

3.增删改,和in操作

1.增 --往列表中添加元素
  1. 列表.append(元素) --在指定列表的最后追加一个指定的元素
movies = ['看不见的客人', '不能说的秘密', '烈日灼心', '唐人街探案', '恐怖游轮']
print(movies)
movies.append('星际穿越')
print(movies)

2)插入 列表.insert(下标,元素) --在列表指定下标对应元素前,插入元素

movies = ['看不见的客人', '不能说的秘密', '烈日灼心', '唐人街探案', '恐怖游轮']
movies.insert(1, '忍者神龟')
print(movies)
movies.insert(-2, '变形金刚')
print(movies)

# 练习:输入一个学生的成绩,将输入的成绩插入到列表scores,并且保证插入后不影响从大到小的规律
scores = [100, 97, 95, 87, 82, 82, 80, 76, 72, 65, 60, 57, 53, 40]
num = int(input('请输入学生成绩:'))
for index in range(len(scores)):    # 下标的遍历
    if num >= scores[index]:
        scores.insert(index, num)
        break
    else:
        scores.append(num)
print(scores)
2.删 --删除列表中某个元素

1)语法:del 列表[下标] --删除指定元素

movies = ['看不见的客人', '不能说的秘密', '烈日灼心', '唐人街探案', '恐怖游轮']
del movies[1]
print(movies)

2)语法:列表.remove(元素)

movies = ['看不见的客人', '不能说的秘密', '烈日灼心', '唐人街探案', '恐怖游轮']
movies.remove('不能说的秘密')
print(movies)

3):
列表.pop() --取出列表中的最后一个元素,并且返回
列表.pop(下标) --取出列表中指定下标的元素,并且返回

movies = ['看不见的客人', '不能说的秘密', '烈日灼心', '唐人街探案', '恐怖游轮']
del_item = movies.pop()
print(movies, del_item)
3.改

语法:列表[下标] = 值 --将列表中指定下标对应的元素改成指定的值

subjects = ['高数', '大物', 'C语言', '毛概']
subjects[0] = '英语'
print(subjects)

# 练习:已经列表scores,将列表中低于60分的成绩全部修改成60分
scores = [89, 9, 78, 23, 76, 99, 56, 66]
for index in range(len(scores)):
    if scores[index] < 60:
        scores[index] = 60
print(scores)
4.in 和 not in

值 in 列表 ----判断列表中是否存在指定值对应的元素

movies = ['看不见的客人', '不能说的秘密', '烈日灼心', '唐人街探案', '恐怖游轮']
print('看不见的客人' in movies)       # True
nums = [1, 2, 3, 4]
print([1, 2] in nums)               # False
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值