news 2026/6/10 18:46:30

Python 语法基础4 列表 元组 字典 集合

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python 语法基础4 列表 元组 字典 集合

文章目录

    • 一 列表
      • 1插入元素
      • 2查询
      • 3删除
      • 4排序
      • 5切片
      • 6列表推导式
    • 二 元组
      • 1元组的特点和作用
      • 2查询元素
    • 三 字典
      • 1定义
      • 2查询
      • 3修改
      • 4添加
      • 5删除
      • 6长度
      • 7获取所有键
      • 8获取所有值
      • 9获取所有键值对
    • 四 集合
      • 1添加元素
      • 2删除元素
      • 3 交集和并集

一 列表

类似c#数组,但是列表元素没有类型限制

li=[]一个空列表 li=[1,2,3,"a",4]一个有值的列表

列表可以迭代

foriinli:print(i)

1插入元素

append()
整体追加

li=["one","two","three"]li.append("four")foriinli:print(i)#one two three four

extend()
将另一个迭代器的内容逐项添加,如果参数不是一个可迭代对象,会报错

li=["one","two","three"]li.extend("four")foriinli:print(i)#one two three f o u r

insert()
在指定位置处添加

li=["one","two","three"]li.insert(1,"four",)foriinli:print(i)#one four two three

2查询

**in和 not in ** 元素是否存在/不存在,返回Bool ,注意这两个不是方法

li=["one","two","three"]print("one"inli)#输出True

index()
如果元素存在,返回索引,如果不存在报错,列表没有find方法
参数2 3可以指定查找范围

li=["one","two","three"]print(li.index("one"))

count()
元素在列表中出现的次数
只能从整个列表中查找

li=["one","two","three"]print(li.count("one"))

len()
获取列表的长度

li=[1,2,3]print(len(li))#输出3

3删除

del
删除整个表或某个元素,注意这不是方法

li=["one","two","three"]del li[0]#删除第0个元素 del li #删除整个表

pop()
删除最后一个元素或指定元素,有返回值,返回被删除的元素,这是一个方法

li=["one","two","three"]de=li.pop()没有参数默认删除最后一个print(de)#输出threeprint(li)#输出['one','two']

remove()
根据元素的值删除,只删除第一个匹配值,没有匹配值会报错

li=["one","one","two","three"]li.remove("one")print(li)#['one','two','three']

4排序

sort()
从小到大排序,字母按字母顺序排序

li=["one","one","two","three"]li.sort()print(li)#['one','one','three','two']

reverse()
翻转列表元素

5切片

li=[1,2,3,4]print(li[1:3])#输出[2,3]索引包前不包后 前后都可以省略,分别是从头切和切到尾

6列表推导式

格式1
[表达式 for 元素in 迭代器] 中括号是必须的

li=[][li.append(i)foriinrange(1,6)]print(li)#输出[1,2,3,4,5]

格式2
[表达式 for 元素in 迭代器 if条件] 中括号是必须的

li=[][li.append(i)foriinrange(1,11)ifi%2==1]print(li)#输出[[1,3,5,7,9]]

二 元组

类似c#数组,但是元组元素没有类型限制

tua=(1,2)

注意,如果只有一个元素,后边要加逗号,否则会被解释器理解为一个变量

tua=(1)print(type(tua))#输出<class'int'>tua被理解为一个int变量 tua=(1,)print(type(tua))#<class'tuple'>加上逗号正确识别为一个元组 tua=()print(type(tua))#<class'tuple'>定义空元组可以只写()

1元组的特点和作用

不允许修改内容,只能查
占位符输出时使用的是元组

name="wuzi"age=20print("我的名字是%s,我的年龄是%d"%(name,age))tua=("wuzi",20)print("我的名字是%s,我的年龄是%d"%tua)#两者等价

2查询元素

in notin count() index() length 同列表

三 字典

1定义

经典的键值对,键要有唯一性,键和值的类型没有限制
如果有两个

dic={1:"wuzi","age":18}print(dic)#输出结果{1:'wuzi','age':18}

键名重复不会报错,但是会覆盖前边的值

dic={1:"wuzi","age":18,"age":19}print(dic)#输出{1:'wuzi','age':19}

2查询

两种方式

dic={"name":"wuzi","age":19}print(dic["age"])#输出19键不存在会报错print(dic.get("age"))#输出19键不存在返回Noneprint(dic.get("height","键不存在"))#输出 键不存在 可以指定一个键不存在时的提示

3修改

dic={"name":"wuzi","age":19}dic["age"]=20dic["hegiht"]=180print(dic)#输出{'name':'wuzi','age':20,'hegiht':180}如果键不存在将会自动新增

4添加

dic["hegiht"]=180#如果键不存在,会自动新加

5删除

del
删除整个对象 或 键值对 del不是方法,是python的内置语句

#删除对象dic={"name":"wuzi","age":19}deldicprint(dic)#输出报错,因为字典的对象已经被删除#删除键值对 键不存在会报错dic={"name":"wuzi","age":19}del dic["age"]print(dic)#输出{'name':'wuzi'}

clear()
清空字典

dic={"name":"wuzi","age":19}dic.clear()print(dic)#输出{}

pop()
移除一个元素,并返回被移除的值,和del不同,pop是dic自带的内置方法

dic={"name":"wuzi","age":19}d=dic.pop("age")print(d)#输出19被移除的值print(dic)

popitem()
3.7之前是随机删除一个键值对,3.7之后是删除最后一个键值对

dic={"name":"wuzi","age":19}d=dic.popitem()print(dic)#{'name':'wuzi'}

6长度

len()
这不是dic的方法,而是Python的全局方法,dic自带的是 dic.len(),len()内部会调用这个方法

dic={"name":"wuzi","age":19}print(len(dic))#2

7获取所有键

keys()

dic={"name":"wuzi","age":19}print(dic.keys())#输出dict_keys(['name','age'])#keys()返回的类型为dict_keys,这是一个迭代器foriindic.keys():print(i)#循环打印键名 此外如果直接foriindic也将打印键名

8获取所有值

values()

dic={"name":"wuzi","age":19}print(dic.values())#输出dict_values(['wuzi',19])foriindic.values():print(i)#循环打印值

9获取所有键值对

items()

dic={"name":"wuzi","age":19}print(dic.items())#输出dict_items([('name','wuzi'),('age',19)])foriindic.items():print(i)#循环打印值

四 集合

集合set不能有重复值 不能修改 可以自动去重
集合是无序的,取出的顺序和放入的顺序无关,每次运行都会不一样(只有数字的顺序和放入顺序固定一致)

s1={1,2,3}s2=set{}#使用这种方式定义一个空集合,如果直接s2={}会被识别为一个字典#自动去重s3={1,2,3,4,4,4}print(s3)#输出{1,2,3,4}

1添加元素

add()
整体添加,一次只能添加一个

s3={1,2,3,4}s3.add(5)print(s3)#输出{1,2,3,4,5}

update()
添加一个迭代对象里的元素

s3={1,2,3,4}s3.update((5,6,7))#括号里需要是一个可迭代对象 这里是一个元组print(s3)#输出{1,2,3,4,5,6,7}

2删除元素

remove()删除指定的元素 参数是元素,不是索引,如果元素不存在会报错

s3={1,2,3,4}s3.remove(1)print(s3)#输出{2,3,4}

pop()
删除无序排列后的第一元素,剩下的元素不会重新排序

s3={"1","2","3","4"}s3.pop()print(s3)#输出{'3','1','4'}s3.pop()print(s3)#输出{'1','4'}

discard()删除指定的元素,元素不存在,不会报错

s3={"1","2","3","4"}s3.discard("2")print(s3)#输出{'3','4','1'}

3 交集和并集

交集
取共有的部分,用&符号
如果没没有交集会返回 set() 这是一个空集合

s3={"1","2","3","4"}s4={"1","5"}print(s3&s4)#输出{'1'}s3={"1","2","3","4"}s4={"5"}print(s3&s4)#输出set()空集合

并集用|符号

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

BetterNCM安装器实战指南:从零构建插件管理系统的3个核心设计模式

BetterNCM安装器实战指南&#xff1a;从零构建插件管理系统的3个核心设计模式 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer BetterNCM安装器是一款专为网易云音乐PC客户端设计的现代…

作者头像 李华
网站建设 2026/6/10 18:34:58

HTTrack:将整个互联网装进口袋,离线浏览的革命性工具

HTTrack&#xff1a;将整个互联网装进口袋&#xff0c;离线浏览的革命性工具 【免费下载链接】httrack HTTrack Website Copier, copy websites to your computer (Official repository) 项目地址: https://gitcode.com/gh_mirrors/ht/httrack 你是否曾遇到过这样的困境…

作者头像 李华
网站建设 2026/6/10 18:34:57

KeymouseGo:3分钟告别重复劳动,让电脑替你完成枯燥工作

KeymouseGo&#xff1a;3分钟告别重复劳动&#xff0c;让电脑替你完成枯燥工作 【免费下载链接】KeymouseGo 类似按键精灵的鼠标键盘录制和自动化操作 模拟点击和键入 | automate mouse clicks and keyboard input 项目地址: https://gitcode.com/gh_mirrors/ke/KeymouseGo …

作者头像 李华
网站建设 2026/6/10 18:27:59

终极GTA5游戏增强工具:5分钟快速上手YimMenu完整指南

终极GTA5游戏增强工具&#xff1a;5分钟快速上手YimMenu完整指南 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMe…

作者头像 李华
网站建设 2026/6/10 18:25:47

现金流只剩三个月,还砸两百万做POC?

《产品经营》专栏 | 【产品重构 OS】系列 3/9 我听着窗外的夜风,停下敲字,揉了揉发酸的眉心,又把书桌上的台灯拨亮了一点。 下午接到一个老部下的电话,声音里透着绝望。他在一家做制造业 SaaS 的公司当产品总监,老板大笔一挥,把他们那个“智能排产”项目的预算直接砍了…

作者头像 李华
网站建设 2026/6/10 18:25:40

CBCX值得关注吗?从风险提示与用户保护意识看平台表现:信息透明视角

当用户从更成熟的角度选择平台时&#xff0c;稳定体验和规范表达往往比单一卖点更重要。在信息越来越密集的市场环境中&#xff0c;平台是否值得关注&#xff0c;不能只看页面包装或短期热度。CBCX可以从服务完整度、合规意识、投教支持和用户沟通几个方向拆开观察。这样的评测…

作者头像 李华