news 2026/4/15 12:36:15

Python语法基础笔记(三)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python语法基础笔记(三)
一、列表 list
  1. 定义:是处理一组有序项目的数据结构

  2. 格式:列表名 = [ 元素1,元素2,元素3,元素4,……]

  3. 注意:

    • 列表的所有元素放在一对中括号" [] "中,并使用逗号 “,” 隔开

    • 一个列表中的数据类型可以各不相同 [ 1,2,'a',3]

    • 列表可以进行切片操作 -(切片含义详见字符串部分)

    • 列表时可迭代对象,可以for循环遍历取值

  4. 常见操作:

    1. 添加元素

      li = ["one","two","three"]

      • **append()**: 整体添加元素

        li.append("four") ----- ["one","two","three"."four"]

      • **extend()**: 分散添加,及那个另外一个类型中的元素逐一添加 ;==必须是可迭代的对象==

        li.extend("four") ----- ["one","two","three"."f","o","u","r"]

        li.extend(2) ---- 报错

      • **insert()**: 在指定位置插入元素;指定位置如果有元素,原有元素会后移;没有指定下标位置,报错

        li.insert(3,"four") ----- ["one","two","three"."four"]

        li.insert(0,"four") ----- ["four","one","two","three"."four"]

        li.insert("four") ----- 报错

    2. 修改元素 :直接通过下标就可以进行修改

      li = [1,2,3]

      li[1] = "a" ----- li = [1,"a", 3]

    3. 查询元素

      in : 判断指定元素是否存在列表中,如果存在就跟会True, 不存在就返回Flase

      not in : 判断指定元素是否存在列表中,如果不存在就跟会True, 存在就返回Flase

      # 用户输入昵称,重复则不能使用 name_list = ["小王","小张","小李"] while True: name = input("请输入你的名字:") if name in name_list: print("昵称重复不能使用") else : print("名字不重复,可以使用") name_list.append(name) #把昵称添加到列表中 break print(name_list)

      index : 返回指定数据所在位置的下标,如果查找的数据不存在就会报错

      count:统计指定数据在当前列表出现的次数

      跟字符串的用法相同

    4. 删除元素

      li = ["a","b","c","d","a"]

      • **del**: 删除列表/根据下标删除

      del li ----删除列表

      del li[2] -----["a","b","d"] 删除指定下标

      • **pop()**: 删除指定下标的数据,python3版本默认删除最后一个元素

      li.pop() ----- ['a', 'b', 'c'] # 不指定下标,默认删除列表最后一个元素

      li.pop(1)----- ['a', 'c', 'd'] # 不能指定元素删除,只能指定下标1进行删除,下标不能超出范围

      • **remove()**:根据元素的值进行删除

      li.remove('b") ----- ['a', 'c', 'd']

      li.remove("t")----- 报错,列表中不存在这个元素

      li.remove("a") ----['b', 'c', 'd', 'a'] ,有相同元素时,默认删除最开始出现的指定元素

    5. 排序元素

      li = [1,5 ,3, 6,4,2]

      **sort()**: 将列表按指定顺序重新排列,默认从小到大

      li.sort() -----[1,2,3,4,5,6]

      **reverse()**: 倒序,将列表倒置(反过来)

      li.reverse() -----[2,4,6,3,5,2]

      `注意: 将两个配合使用,可以实现从大到小排列`

      或者:li.sort(reverse = True)-----[6,5, 4, 3, 2, 1]

  5. 列表推导式:

    1. 格式一: [ 表达式 for 变量 in 列表]

      注意:in后面不仅可以放列表,还可以放range()、可迭代对象

    # 添加元素到列表 li = [li.append(i) for i in range(1,6)] print(li) #输出 [1,2,3,4,5]
    1. 格式二:[表达式 for 变量 in 列表 if 条件]

    # 把奇数放到列表里面 li = [i for i in range(1,11) if i % 2 != 0] print(li) # 输出 [1, 3, 5, 7, 9]
  6. 列表的嵌套

    含义: 一个列表里面又有一个列表

    li = [1,2,3,[4,5,6]] [4,5,6] 是里面的列表

    li[3] = [4,5,6] 取出里面的列表

    li[3][2] = 6 取出内列表中的下标为2的元素

二、元组 tuple
  1. 基本格式:元组名 = (元素1,元素2,元素3……)

  2. 所有元素包含在小括号内,元素与元素之间用“ ,”隔开,不同元素也可以是不同的数据类型

  3. 只有一个元素的时候,末尾必须加上逗号“,”,否则返回这个唯一的值的数据类型

  4. 元组与列表的区别:基本类似,但是不允许增删改等操作,只支持查询

  5. 元组也有下标,从左往右,从0开始

  6. 可以使用count()、index()、len()、in、not in 、切片等,和列表用法相同

  7. 应用场景:

    • 函数的参数和返回值

    • 格式化输出后面的()本质上就是一个元组:print(“%s的年龄是:%的” %==(name,age)==)

    • 数据不可以被修改,保护数据的安全

tua=() # 创建一个空元组 print(type(tua)) # 输出类型 tuple <class 'tuple'> tub = (1) print(type (tub)) # 输出类型 int <class 'int'> tuc=("a") print(type(tuc)) # 输出类型 str <class 'str'> tud=("a",) print(type(tud)) # 输出类型 tuple <class 'tuple'>
三、字典 dict
  1. 格式: dic = {"name": "小陈",“age": 18 ,"sex": "female"}

  2. 注意:

    • 键值对形式保存,键 具有唯一性,但 值 可以重复;

    • 当键重复时,不会报错,前面的值会被后面的值覆盖

  3. 常见操作:

    1. 查看元素 :

      1. 格式1:变量名[键名]

      2. 注意:字典中没有下标,不可以根据下标;查找元素需要根据键名,键名相当于下标

      dic = {"name": "小陈","age": 18 ,"sex": "female"} print(dic["name"]) # 小陈 print(dic["tel"]) #KeyError: 'tel' 输出报错,没有键名
      1. 格式2:变量名.get(键名)

      dic = {"name": "小陈","age": 18 ,"sex": "female"} print(dic.get("age")) # 18 print(dic.get("tel")) # None 无键名,输出None,不报错 print(dic.get("tel","无此字段")) # 输出无此字段,如果没有这个键名,返回自己设置的默认值
    2. 修改元素

      1. 格式:变量名[键名] = 值

      2. 注意:字典通过键名修改,列表通过下标修

      dic = {"name": "小陈","age": 18 ,"sex": "female"} dic["age"] = 20 print(dic) dic["tel"] = "123456" # 键名不存在时,新增该键值对 print(dic) # {'name': '小陈', 'age': 20, 'sex': 'female'} # {'name': '小陈', 'age': 20, 'sex': 'female', 'tel': '123456'}
    3. 添加元素

      1. 格式:变量名[键名] = 值

      2. 注意:键名存在就修改值,键名不存在,就新增元素

    4. 删除元素

      1. del 字典名 :删除整个字典 del dic

      2. del 字典名[键名] : 删除指定键值对,当键名不存在就会报错 del dic['name']

      3. clear () : 清空整个字典里面的东西,但保留了这个字典

      4. pop () : 删除指定键值对,键不存在就会报错,括号中空时也报错

      5. popitem (): python3.7之前的版本是随机删除一个键值对,python3.7 之后的版本默认删除最后一个键值对。

      dic = {"name": "小陈","age": 18 ,"sex": "female"} del dic["age"] print(dic) #{'name': '小陈', 'sex': 'female'} dic1 = {"name": "小陈","age": 18 ,"sex": "female"} dic1.clear() print(dic1) # {} dic1["name"]="小肖" # 在空字典中新增键值对 print(dic1) # {'name': '小肖'} dic2 = {"name": "小陈","age": 18 ,"sex": "female"} dic2.pop("name") print(dic2) # {'age': 18, 'sex': 'female'} dic2.popitem() print(dic2) #{'age': 18}
    5. 求长度

      1. len () len(dic) 求长度,就是有几对键值对

      2. 不止是字典,还可以求列表等

    6. keys ( ) : 返回字典里面包含的所有键名

    7. values ( ) : 返回字典里面包含的所有值

    8. items ( ) : 返回字典里面包含的所有的键值对,键值对以元组的形式

      dic = {"name": "小陈","age": 18 ,"sex": "female"} print(len( dic)) # 3 print(dic.keys()) # dict_keys(['name', 'age', 'sex']) for i in dic: print(i) # name # age # sex print(dic.values()) for i in dic.values(): print(i) # 小陈 # 18 # female print(dic.items(),type(dic.items())) # dict_items([('name', '小陈'), ('age', 18), ('sex', 'female')]) <class 'dict_items'> for i in dic.items(): print(i,type(i)) # ('name', '小陈') <class 'tuple'> # ('age', 18) <class 'tuple'> # ('sex', 'female') <class 'tuple'>
  4. 应用场景:使用键值对,描述一个物体的相关信息

四、集合 set
  1. 格式:集合名 = { 元素1,元素2,元素3……}

  2. 定义一个空集合 : s =set() 如果是 s={ },定义一个空字典

  3. 集合具有无序性

    举例:

    s ={"a","b","c","d"},print 的时候,每次输出的结果元素顺序都不一样

    s ={6,3,4,5,8,9,10}, print的时候,每次输出的结果都是一样的,是按照元素从小到大排序

    集合的无序性实现方式涉及了hash(哈希表)

    hash("a")--每次运行结果都不同,hash值不同,那么在hash表中的位置也不同,这就实现了集合的无序性

    hash(1) ---python中int 整型的hash值就是它本身,在hash表中的位置不会发生变化,所以顺序就不会改变

    利用无序性:不能修改集合中的值

  4. 集合具有唯一性 :可以自动去重

    s = {1,2,3,4,5,6,7,8,92,3,4,5,6} ----- print(s) # 输出{1, 2, 3, 4, 5, 6, 7, 8, 92}

    可以用于元组或者列表去重

    s= set([1,2,3,4,5,6,7,8,92,3,4,5,6]) ---- 将列表转换成集合

    print(s) ---- {1, 2, 3, 4, 5, 6, 7, 8, 92}

  5. 常见操作:

    1. 添加元素

      • add() :

        添加的是一个整体

        集合的唯一性,决定了如果需要添加的元素在原集合中已经存在,就不进行任何操作

        一次只能添加一个元素,添加多个就报错

        s ={1,2,3,4,5,6,7,8,9,10} s.add(11) s.add((11,12)) # 一个元组作为一个元素 print(s) # {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, (11, 12)}
      • update():

        把传入的元素拆分,一个个放进集合

        添加的是一个可迭代的对象:如 字符串/列表/字典/元组

        s ={1,2,3,4,5} s.update([6,7,8]) s.update("abc") s.update((9,)) s.update({"age": 18,"name": "小陈"}) print(s) # 输出 {1, 2, 3, 4, 5, 6, 7, 8, 9, 'b', 'a', 'age', 'name', 'c'}
    2. 删除元素

      • remove () :

        选择删除的元素,如果集合中有就删除,没有就报错

        s1= {1,2,3,4,5} s1.remove(1) print("输出:",s1) # 输出: {2, 3, 4, 5}
      • pop () :

        括号中不添加任何内容 ---s1.pop()

        对集合进行不许排列,然后将左边的第一个元素删除

        默认删除根据hash表排序后的第一个元素

      • discard () :

        选择要删除的元素,有就会删除,没有则不会发生任何改变,即不会进行任何操作

        s1= {1,2,3,4,5} s1.pop() s1.discard(5) s1.discard(6) print("输出:",s1) #输出: {2, 3, 4}
  6. 交集 &

    含义:集合与集合 共有的部分;如果交集为空,返回空集 set()

  7. 并集 |

    含义 :所有的都放一起,重复的不算(集合的唯一性)

s1= {1,2,3,4,5} s2= {4,5,6,7,8} s3={0,11,22} print("输出交集:",s1 & s2) #输出交集: {4, 5} print("输出交集:",s1 & s3) #输出交集: set() print("输出并集:",s1 | s2) #输出并集: {1, 2, 3, 4, 5, 6, 7, 8}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/6 14:09:59

大模型从0到精通:错题本与得分卡 —— AI如何知道自己“错”了?

本文是《大模型从0到精通》系列第一卷“奠基篇”的第二章。上章我们找到了预测直线,但怎么知道这条线是“好”是“坏”?本章将引入损失函数——AI的“错题本”与“得分卡”,让你理解AI如何量化自己的错误,为后续的优化学习奠定基础。 一、从“感觉差不多”到“数字评分” …

作者头像 李华
网站建设 2026/4/9 10:58:17

LabVIEW完整部署指南:从零开始掌握图形化编程

LabVIEW作为美国国家仪器&#xff08;NI&#xff09;公司开发的革命性图形化编程环境&#xff0c;彻底改变了传统文本编程的模式。本指南将带领您完成LabVIEW的全生命周期管理&#xff0c;从准备工作到日常使用的完整流程。 【免费下载链接】LabVIEW下载安装和谐与卸载教程 Lab…

作者头像 李华
网站建设 2026/4/11 19:57:43

Uvicorn 全面教程:常用 API 串联与实战指南

大家好&#xff0c;我是jobleap.cn的小九。 Uvicorn 是一款闪电般快速的 ASGI&#xff08;Asynchronous Server Gateway Interface&#xff09;服务器&#xff0c;专为 Python 异步 Web 应用设计&#xff0c;是 FastAPI、Starlette 等主流异步 Web 框架的标配运行时。相较于传统…

作者头像 李华
网站建设 2026/4/12 14:20:20

如何用新榜小豆芽解决自媒体团队最头疼的3大难题?

对于正在规模化运营的自媒体团队而言&#xff0c;账号增长带来的不仅是影响力&#xff0c;更是一系列具体而棘手的运营难题。团队负责人最近就面临三个典型困境&#xff1a;“账号越添越多&#xff0c;管理越来越乱”、“矩阵做大了&#xff0c;总担心被封号”、“团队人多了&a…

作者头像 李华
网站建设 2026/4/9 5:35:18

springboot基于vue的高数学竞赛同步课堂学习系统的设计与实现_84c06k28

目录已开发项目效果实现截图开发技术核心代码参考示例1.建立用户稀疏矩阵&#xff0c;用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度系统测试总结源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;已开发项目效果实现…

作者头像 李华
网站建设 2026/4/9 19:24:08

6、从Web应用到电子基础的综合技术之旅

从Web应用到电子基础的综合技术之旅 1. 连接用户界面与后端 当后端和用户界面都设计好后,使用 JavaScript 来连接二者是最后一步。不过,使用单独的 JavaScript 文件存在一个问题,即它无法使用 Flask 模板的特性,例如 url_for 就无法正常工作。所以,所有需要这些特性的…

作者头像 李华