第二周 Day 1 — 列表

一、认识列表

heroes = ['亚索', '永恩', '劫', '薇恩', '卡莉斯塔', '金克斯']
for hero in heroes:print('我喜欢的英雄是', hero)

1. 什么是列表

列表是容器型数据类型,将[]作为容器标志,里面多个元素用逗号隔开:[元素1, 元素2, 元素3, 元素4,...]

列表是可变的(可变值得是元素的个数、值和顺序可变)

列表是有序的(元素有固定位置信息——下标

元素:任何Python支持的类型的数都可以作为列表,同一个列表的元素的类型可以不同。

list1 = []   # 空列表
list2 = [10, 20, 10, 'abc',12.34, [10, 20], (10, 20), {'a':100},lambda x: x * 2]

二、列表的增删改查

1.“查”—获取元素

  1. 获取单个元素

    语法:
    列表[下标]   —   获取列表中指定下标的元素
    

    下标又叫索引,代表元素在序列中的位置信息。

    下标值的范围有两种:

    a.元素从左往右对应的下标是从0开始依次增加。

    b.元素从右往左对应的下标是从-1开始依次减少。

    heroes = ['亚索', '永恩', '劫', '薇恩', '卡莉斯塔', '金克斯']
    print(heroes[0])   # 亚索
    print(heroes[1])   # 永恩
    print(heroes[2])   # 劫print(heroes[-1])  # 金克斯
    print(heroes[-2])  # 卡莉斯塔print(heroes[6])   # 下标越界
    print(heroes[-7])  # 下标越界
    
  2. 遍历

    2.1 方法一:直接获取元素。

    """
    for 变量 in 列表:循环体
    """
    for x in heroes:print('x:', x)
    

    练习:定义一个列表保存一个班所有学生的分数。

    # 1. 求所有学生的总分
    # 2. 统计不及格学生的分数
    scores = [45, 67, 89, 90, 77, 23, 50]
    sums = 0
    count = 0
    for score in scores:sums += scoreif score < 60:count += 1
    print('总分:', sums)
    print('不及格学生的个数:', count)
    

    2.2 方法二:通过下标遍历元素。

    len(列表) — 获取列表长度(获取列表元素的个数)

    """
    for 变量 in range(len(列表)):循环体
    """
    scores = [45, 67, 89, 90, 77, 23, 50]
    for index in range(len(scores)):print(index)            # 0 1 2 3 4 5 6print(scores[index])    # 45 67 89 90 77 23 50
    

    练习:打印位置(下标)在偶数位上的所有元素。

    scores = [45, 67, 89, 90, 77, 23, 50]
    for index in range(len(scores)):if not index & 1:print(scores[index])
    
  3. 获取部分元素(列表切片)— 返回一个小列表。

    语法:
    列表[开始下标:结束下标:步长]
    

    步长为:[开始下标,结束下标),从前往后,每次下标增加步长。

    步长为:[开始下标,结束下标),从后往前,每次下标增加步长。

    heroes = ['亚索', '永恩', '劫', '薇恩', '卡莉斯塔', '金克斯']
    print(heroes[1:4:1])     # ['永恩', '劫', '薇恩', '卡莉斯塔']
    print(heroes[1:4:2])     # ['永恩', '薇恩', '金克斯']
    print(heroes[0:-1:1])    # ['亚索', '永恩', '劫', '薇恩', '卡莉斯塔']
    print(heroes[5:1:1])     # []
    print(heroes[1:5:-1])    # []
    print(heroes[-1:-5:1])   # []
    print(heroes[-1:0:-2])   # ['金克斯', '薇恩', '永恩']
    

    3.1 省略步长

    列表[开始下标:结束下标] == 列表[开始下标:结束下标:1]

    heroes = ['亚索', '永恩', '劫', '薇恩', '卡莉斯塔', '金克斯']
    print(heroes[1:5])      # ['永恩', '劫', '薇恩', '卡莉斯塔']
    print(heroes[-5:-2])    # ['永恩', '劫', '薇恩']
    print(heroes[0:-3])     # ['亚索', '永恩', '劫']
    print(heroes[-1:2])     # []
    

    3.2 省略开始下标

    列表[:结束下标:步长]

    列表[:结束下标]

    如果步长为:开始下标省,就从第一个元素往后取。

    如果步长为:开始下标省,就从最后一个元素往前取。

    heroes = ['亚索', '永恩', '劫', '薇恩', '卡莉斯塔', '金克斯']
    print(heroes[:3])        # ['亚索', '永恩', '劫']
    print(heroes[:3:-1])     # ['金克斯', '卡莉斯塔']
    print(heroes[:-3:1])     # ['亚索', '永恩', '劫']
    print(heroes[:-5:-2])    # ['金克斯', '薇恩']
    print(heroes[:4:3])      # ['亚索', '薇恩']
    

    3.3 省略结束下标

    列表[开始下标::步长]

    列表[开始下标:]

    如果步长为:结束下标省,就从开始下标元素开始从前往后取,取到最后一个元素为止。

    如果步长为:结束下标省,就从开始下标元素开始从后往前取,去到第一个元素为止。

    heroes = ['亚索', '永恩', '劫', '薇恩', '卡莉斯塔', '金克斯']
    print(heroes[1:])       # ['永恩', '劫', '薇恩', '卡莉斯塔', '金克斯']
    print(heroes[-3:])      # ['薇恩', '卡莉斯塔', '金克斯']
    print(heroes[2::2])     # ['劫', '卡莉斯塔']
    print(heroes[-3::-1])   # ['薇恩', '劫', '永恩', '亚索']
    

    3.4 一起省

    列表[::步长]

    如果步长为:从前往后取,取整个列表。

    如果步长为:从后往前取,取整个列表。

    heroes = ['亚索', '永恩', '劫', '薇恩', '卡莉斯塔', '金克斯']
    print(heroes[::2])    # ['亚索', '劫', '卡莉斯塔']
    print(heroes[:])      # ['亚索', '永恩', '劫', '薇恩', '卡莉斯塔', '金克斯']
    print(heroes[::-1])   # ['金克斯', '卡莉斯塔', '薇恩', '劫', '永恩', '亚索']
    

2.“增” — 往列表中添加元素

  1. 列表末尾追加

    列表.append(元素) — 在指定列表的最后追加一个指定的元素

    movies = ['看不见的人', '肖申克的救赎', '唐人街探案', '小森林', '忠犬八公']
    movies.append('触不可及')
    print(movies)      # ['看不见的人', '肖申克的救赎', '唐人街探案', '小森林', '忠犬八公', '触不可及']
    
  2. 列表内插入

    列表.insert(下标, 元素) — 在列表指定下标对应的元素插入指定元素

    movies = ['看不见的人', '肖申克的救赎', '唐人街探案', '小森林', '忠犬八公']
    movies.insert(1, '星际穿越')
    print(movies)       # ['看不见的人', '星际穿越', '肖申克的救赎', '唐人街探案', '小森林', '忠犬八公']
    

练习:输入一个学生的成绩,将输入的成绩插入到列表scores,并且保证插入后不影响从大到小的规律。

scores = [100, 97, 95, 87, 82, 82, 80, 76, 72, 65, 60, 57, 53, 40]
score = int(input('输入一个成绩:'))
for index in range(len(scores)):if score > scores[index]:scores.insert(index, score)break
else:scores.append(score)
print(scores)

3.“删” — 删除列表中某个元素

del 列表[下标] — 删除列表中指定下标对应的元素(下标不能越界)

# a.删除变量
name = '小明'
del name
print(name)    # 报错# b. 删除列表中指定元素
nums = [10, 1, 2, 32]
del nums[-1]
print(nums)    # [10, 1, 2]# c. 删除整个列表
del nums
print(nums)    # 报错

列表.remove(元素) — 删除列表中指定元素(如果指定元素有多个,只删最前面那一个;如果指定元素不存在,会报错!)

TVs = ['琅琊榜', '破产姐妹', '甄嬛传', '庆余年']
TVs.remove('甄嬛传')
print(TVs)      # ['琅琊榜', '破产姐妹', '庆余年']TVs = ['琅琊榜', '破产姐妹', '甄嬛传', '庆余年','甄嬛传', '甄嬛传']
TVs.remove('甄嬛传')
print(TVs)      # ['琅琊榜', '破产姐妹', '庆余年', '甄嬛传', '甄嬛传']TVs = ['琅琊榜', '破产姐妹', '甄嬛传', '庆余年']
TVs.remove('大江大河')
print(TVs)      # 报错ValueError: list.remove(x): x not in list

列表.pop() — 取出列表中最后一个元素

列表.pop(下标) — 取出列表中指定下标对应的元素

TVs = ['琅琊榜', '破产姐妹', '甄嬛传', '庆余年','甄嬛传', '甄嬛传', '白夜追凶']
del_items = TVs.pop()
print(TVs, del_items)     # ['琅琊榜', '破产姐妹', '甄嬛传', '庆余年','甄嬛传', '甄嬛传'] 白夜追凶TVs = ['琅琊榜', '破产姐妹', '甄嬛传', '庆余年','甄嬛传', '甄嬛传', '白夜追凶']
TVs.pop(1)
print(TVs)      # ['琅琊榜', '甄嬛传', '庆余年','甄嬛传', '甄嬛传', '白夜追凶']

4.“改” — 修改元素的值

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

subject = ['高数', '大物', 'c语言', '毛概']
subject[0] = '英语'
print(subject)     # subject = ['英语', '大物', 'c语言', '毛概']

练习:已经列表scores,将列表中低于60分的成绩全部修改成60分。

scores = [89, 9, 78, 23, 76, 99, 66]
for index in range(len(scores)):if scores[index] < 60:scores[index] = 60
print(scores)       # [89, 60, 78, 60, 76, 99, 66]

5. innot in

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

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

TVs = ['琅琊榜', '破产姐妹', '甄嬛传', '庆余年', '甄嬛传', '甄嬛传', '白夜追凶']
print('甄嬛传' in  TVs)        # True
print('甄嬛传2' in  TVs)       # False
print('甄嬛传2' not in  TVs)   # True

第二周 Day1 — Python列表相关推荐

  1. 第二周学习python总结

    第二周学习python总结 列表和元组的区别 元组也是多个元素按照一定的顺序构成的序列.元组和列表的不同之处在于,元组是不可变类型,这就意味着元组类型的变量一旦定义,其中的元素不能再添加或删除,而且元 ...

  2. 第二周练习 # Python # Cilay

    · 回文数的判断 ‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮ ...

  3. Python语言程序设计——第二周:Python基本图形绘制

    深入理解Python语言 计算机技术的演进 五种编程语言的多样初心 Python语言的特点 "超级语言"的诞生 实例2:Python蟒蛇绘制 #PythonDraw.py impo ...

  4. 吴恩达Coursera, 机器学习专项课程, Machine Learning:Advanced Learning Algorithms第二周编程作业...

    吴恩达Coursera, 机器学习专项课程, Machine Learning:Advanced Learning Algorithms第二周所有jupyter notebook文件: 吴恩达,机器学 ...

  5. 第二周python作业——字符串、字典、列表

    第二周作业 字符串 基础 进阶 字典 列表 1. 基础题 2. 进阶题 3. 列表推导式 第二周作业 选择题 填空题 编程题 字符串 基础 输入一个字符串,打印所有奇数位上的字符(下标是1,3,5,7 ...

  6. python第二周day3

    python第二周day3(9.24) 1.day7字典作业更改版 # 定义一个列表,在列表中保存6个学生的信息(学生信息中包括: 姓名.年龄.成绩(单科).电话.性别(男.女.不明) ) stude ...

  7. python第二周day2

    python第二周day2(9.23) 1.day6列表作业更改版 import random # 随机操作 # random.randint(0, 100) # **1.创建一个列表,列表中有10个 ...

  8. python第二周day5

    python第二周day5(9.27) 1.day9字符串作业更改版 # *1.1输入一个字符串,打印所有奇数位上的字符(下标是1,3,5,7-位上的字符) # 例如: 输入**'abcd1234 ' ...

  9. Python学习第二周总结

    Python学习第二周总结 ​ 第二周主要学了python中几种常见的数据结构,分别是列表.元组.字符串.集合.字典重点就是怎么创建和使用这些数据结构,操作方法更是一定要掌握的. 一.列表 1.1 定 ...

最新文章

  1. JAVA 和.NET在安全功能的比较
  2. 杭电1019 Least Common Multiple(已解决)
  3. TabSpec和TabHost实例
  4. 什么是方向图乘积定理_初中数学竞赛试题——正多边形与托勒密定理
  5. linux docker run怎么退出,详解如何进入、退出docker容器的方法
  6. mysql raiserror_SQL Server自定义异常的使用raiserror
  7. http抓包实战 pdf_抓包实战 | 浏览器里的HTTP请求到底是如何完成的?
  8. python三层设计_推荐3个Python实现算法和设计模式的工具
  9. [poj 3436]最大流+输出结果每条边流量
  10. j2ee高并发时使用全局变量需要注意的问题
  11. 【紫书】(UVa12096) The SetStack Computer
  12. [Git]git教程
  13. 苹果计算机重装系统步骤,苹果笔记本电脑重装mac系统教程
  14. linux摄像头V4L2 subdev,V4L2 subdev
  15. matlab空间曲面拟合,【Matlab】离散点拟合曲面
  16. 关于拖延症的一些小思考
  17. 核心概念 —— 契约(Contracts)
  18. windows的发展历程(适合小白科普)
  19. adb 获取蓝牙 mac地址 、wifi mac地址的方法
  20. 工具下载( 思维导图、原型图)

热门文章

  1. 废弃的marquee标签
  2. 《项目管理中的8项人际关系技能》读书笔记1
  3. 从it行业的状态看就业
  4. jquery判断自定义属性data-val
  5. oracle数据库导入sql文件
  6. php单页程序,动态php单页站群源码,泛解析单页循环暴力域名站群系统
  7. 云管升级助力海格通信创新之路提速-嘉为案例
  8. python计算机语言论坛,自学IT吧论坛国外大神-计算机科学及 Python 编程导论-中文字幕编程语言资源天地 - www.zxit8.com...
  9. opencv柱面投影
  10. unity通关射线检测实现3d模型自适应地形起伏