news 2026/6/15 15:53:38

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/6/15 14:21:10

Windows系统文件scrptadm.dll丢失损坏 无法运行软件 下载修复

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…

作者头像 李华
网站建设 2026/6/15 12:41:16

开源鸿蒙跨平台开发训练营--AtomGit(GitCode)口袋工具(七)

我们继续接着上一章的内容&#xff0c;完成文件内容的显示。显示文件内容1. 调整侧边栏内容上一章&#xff0c;我们侧边栏只显示了根目录下的文件和文件夹。这一张我们要将其显示成一个可折叠和展开的文件树。目的是为了可以让用户在侧边栏中切换想要查看的文件。GitCodeCodeRe…

作者头像 李华
网站建设 2026/6/15 12:41:11

【鸿蒙开发案例篇】基于MindSpore Lite的端侧人物图像分割案例

大家好&#xff0c;我是 V 哥。今天的内容咱们来详细介绍鸿蒙开发中&#xff0c;如何使用MindSpore Lite在鸿蒙系统上实现端侧人物图像分割功能&#xff0c;以及提供完整的实现方案。 联系V哥获取 鸿蒙学习资料 系统架构设计 技术栈与组件关系 #mermaid-svg-kKMHq6sLNO6nbkY…

作者头像 李华
网站建设 2026/6/14 15:07:47

程序员应该熟悉的概念(6)Fine-tuning和RAG

大语言模型/LLM 通常是由海量通用知识&#xff08;如语法、常识、逻辑&#xff09;训练的&#xff0c;在面对具体场景&#xff08;如医疗问诊、法律文书生成&#xff09;时&#xff0c;能力往往不足。 Fine-tuning/微调 正是为解决这一问题而生的核心技术&#xff0c;其本质是在…

作者头像 李华
网站建设 2026/6/15 12:41:47

7、电子元件与树莓派开发入门

电子元件与树莓派开发入门 1. 常见电子元件介绍 二极管(Diodes) :电阻会双向阻止电流流动,而二极管是一种双端电子元件,具有单向低电阻、反向高电阻的特性。二极管大多由硅制成,发光二极管(LED)是电子电路中最常用的二极管,当在其阳极和阴极提供足够电压时会发光。…

作者头像 李华
网站建设 2026/6/15 11:47:20

数据不丢失 + SEO 保障!LTD 营销枢纽破解外贸建站核心痛点

为什么选择LTD营销枢纽&#xff1f;很多企业担心SaaS建站“停止续费就丢站”&#xff0c;但LTD营销枢纽提供“数据备份自由”——你可随时导出网站所有数据&#xff08;包括客户信息、内容素材、订单记录&#xff09;&#xff0c;即使后续选择其他方案&#xff0c;核心资源也不…

作者头像 李华