news 2026/7/10 13:52:54

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/7/9 22:00:47

时空低空经济数据安全与合规应用

引言&#xff1a;低空经济&#xff0c;一场关乎未来的深空竞赛低空经济绝非昙花一现&#xff0c;而是一场面向未来的战略竞赛。随着无人机物流、城市空中交通&#xff08;UAM&#xff09;、应急救援等场景爆发式增长&#xff0c;2025年低空经济规模预计突破万亿。然而&#xff…

作者头像 李华
网站建设 2026/7/10 9:05:56

如何高效使用SenseVoice:AI语音识别的终极实战指南

如何高效使用SenseVoice&#xff1a;AI语音识别的终极实战指南 【免费下载链接】SenseVoice Multilingual Voice Understanding Model 项目地址: https://gitcode.com/gh_mirrors/se/SenseVoice SenseVoice是一个先进的多语言语音理解模型&#xff0c;专注于AI语音处理和…

作者头像 李华
网站建设 2026/7/10 9:05:36

DataV Vue3:终极数据可视化组件库完整指南

DataV Vue3&#xff1a;终极数据可视化组件库完整指南 【免费下载链接】datav-vue3 datav Vue3TSVite版 项目地址: https://gitcode.com/gh_mirrors/dat/datav-vue3 在现代Web开发中&#xff0c;数据可视化已经成为不可或缺的核心能力。DataV Vue3TSVite版作为一款基于V…

作者头像 李华
网站建设 2026/7/9 23:34:36

测试环境配置与虚拟化技术:构建高效、可靠的质量保障基石

测试环境的现代挑战与虚拟化技术的机遇 在当代软件工程实践中&#xff0c;测试环境的质量与效率直接关系到产品发布的节奏与质量。对于软件测试从业者而言&#xff0c;一个稳定、可重复、隔离的测试环境不再是“锦上添花”&#xff0c;而是保障测试活动有效性的“必需品”。然…

作者头像 李华
网站建设 2026/7/10 6:44:14

Element UI图标系统终极指南:从架构设计到企业级扩展方案

Element UI图标系统终极指南&#xff1a;从架构设计到企业级扩展方案 【免费下载链接】element A Vue.js 2.0 UI Toolkit for Web 项目地址: https://gitcode.com/gh_mirrors/eleme/element 在Vue.js企业级开发中&#xff0c;图标系统的选择往往成为项目效率与维护性的关…

作者头像 李华