写点什么

【Python 基础学习】- 元组 - 字典 - 集合

  • 2022-11-26
    北京
  • 本文字数:2932 字

    阅读完需:约 10 分钟

【Python 基础学习】-元组-字典-集合

9.元组

元组的介绍

我们知道,用方括号括起来的是列表,那么用圆括号括起来的是什么,是元组。


元组也是序列结构,但是是一种不可变序列,你可以简单的理解为内容不可变的列表。除了在内部元素不可修改的区别外,元组和列表的用法差不多。


>>> a = (1,2)>>> type(a)<class 'tuple'>>>> b = [1,2]>>> type(b)<class 'list'>>>> 
复制代码

元组与列表相同操作

1)使用方括号加下标访问元素 2)切片(形成新元组对象)3) count()/index()4) len()/max()/min()/tuple()


>>> a = (1,2)>>> type(a)<class 'tuple'>>>> b = [1,2]>>> type(b)<class 'list'>>>> a[0]    # 使用方括号加下标访问元素1>>> c = a[0:1] #切片形成新的元组对象>>> c(1,)>>> a.count(1) # 某个元素出现的次数1>>> a.index(1) # 指定值在元组中第一次出现的位置0>>> len(a)2>>> max(a)2>>> min(a)1>>> b = [1,2]>>> tuple(b) # 将列表转换为元组(1, 2)>>> 
复制代码

元组中不允许的操作

1)修改、新增元素 2)删除某个元素(但可以删除整个元组)3)所有会对元组内部元素发生修改动作的方法。例如,元组没有 remove, append, pop 等方法


>>> a = (1,2,[3,4])>>> a(1, 2, [3, 4])>>> a[2][0]3>>> a[2][0]= 5  # 元组只保证一级元素不可变,嵌套的可变>>> a(1, 2, [5, 4])>>> >>> a[1]2>>> a[1]= 8Traceback (most recent call last):  File "<pyshell#25>", line 1, in <module>    a[1]= 8TypeError: 'tuple' object does not support item assignment>>> 
复制代码

列表和元组的转换

使用 list 函数可以把元组转换成列表使用 tuple 函数可以把列表转换成元组


>>> b = (1,2)>>> b(1, 2)>>> type(b)<class 'tuple'>>>> list(b)  # list函数可以把元组转换成列表[1, 2]>>> 
复制代码


>>> c = [1,2]>>> tuple(c) # tuple函数可以把列表转换成元组(1, 2)
复制代码


>>> a = (1,2,['a',3])>>> list(a)[1, 2, ['a', 3]]>>> e = (1,2,(3,4))>>> list(e)[1, 2, (3, 4)] # list 和 tuple 函数只转换最外层的嵌套的是不修改的>>> 
复制代码

10.字典

字典介绍

Python 的字典数据类型是基于 hash 散列算法实现的,采用键值对(key:value)的形式,根据 key 的值计算 value 的地址,具有非常快的查取和插入速度。但它是无序的,包含的元素个数不限,值的类型也可以是其它任何数据类型!


字典的 key 必须是不可变的对象,例如整数、字符串、bytes 和元组,但使用最多的还是字符串。列表、字典、集合等就不可以作为 key。同时,同一个字典内的 key 必须是唯一的, 但值则不必。


字典的每个键值对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中,例如:d = {key1 : value1, key2 : value2 }

字典的创建

dict()函数是 Python 内置的创建字典的方法。


>>> test = {}>>> type(test)<class 'dict'>>>> a = {'a':'200','b':100}>>> a{'a': '200', 'b': 100}>>> dict([('a',1),('b',2)]){'a': 1, 'b': 2}>>> dict(a=1,b=2,name='jack'){'a': 1, 'b': 2, 'name': 'jack'}>>> b = {1:100,2:200}   # 常用的 >>> type(b)<class 'dict'>>>> 
复制代码

访问字典

字典是集合类型,不是序列类型,因此没有索引下标的概念,更没有切片的说法。但是,与 list 类似,字典采用把相应的键放入方括号内获取对应值的方式取值。


>>> a = dict(a=1,b=2,name='jack')>>> a{'a': 1, 'b': 2, 'name': 'jack'}>>> a['a']1>>> a['name']'jack'>>> b = {1:100,2:200}>>> b[1]100>>> 
复制代码

增加和修改

增加就是往字典插入新的键值对,修改就是给原有的键赋予新的值。由于一个 key 只能对应一-个值,所以,多次对一个 key 赋值,后面的值会把前面的值冲掉。


>>> b = {1:100,2:200}>>> b{1: 100, 2: 200}>>> b[3]=300           # 添加元素 3:300,键为3,值为300>>> b{1: 100, 2: 200, 3: 300}>>> b['1']=500         # 添加元素>>> b{1: 100, 2: 200, 3: 300, '1': 500}>>> b[1]=600  # 修改元素>>> b{1: 600, 2: 200, 3: 300, '1': 500} >>>  
复制代码

删除字典元素、清空字典和删除字典

使用 del 关键字删除字典元素或者字典本身,使用字典的 clear()方法清空字典


>>> b ={1: 600, 2: 200, 3: 300, '1': 500}>>> b{1: 600, 2: 200, 3: 300, '1': 500}>>> del b[1]            # 删除字典元素>>> b{2: 200, 3: 300, '1': 500}>>> b.pop(3)300>>> b{2: 200, '1': 500}>>> b.clear()   # 清空字典>>> b{}>>> del b   # 删除字典>>> bTraceback (most recent call last):  File "<pyshell#35>", line 1, in <module>    bNameError: name 'b' is not defined>>> 
复制代码

字典的方法

get(key) 返回指定键的值,如果值不在字典中,则返回 default 值 items() 以列表返回可遍历的(键,值)元组对 keys() 以列表返回字典所有的键 values() 以列表返回字典所有的值


>>> a = {'name':'jack','age':20,'addres':'beijin'}>>> a{'name': 'jack', 'age': 20, 'addres': 'beijin'}>>> a.get('name')  # 根据键获取值'jack'>>> >>> a.items() # 返回键-值元组的列表dict_items([('name', 'jack'), ('age', 20), ('addres', 'beijin')])>>> >>> a.keys()dict_keys(['name', 'age', 'addres'])>>> a.values()dict_values(['jack', 20, 'beijin'])>>> 
复制代码

遍历字典

遍历字典获得的键值对是随机无序的


>>> a{'name': 'jack', 'age': 20, 'addres': 'beijin'}>>> for key in a:    print(key)    nameageaddres
复制代码


>>> a{'name': 'jack', 'age': 20, 'addres': 'beijin'}>>> for i in a.items():    print(i)    ('name', 'jack')('age', 20)('addres', 'beijin')
>>> for i in a.items(): print(i[0],i[1])
name jackage 20addres beijin>>>
复制代码


>>> for key,value in a.items():    print(key,value)    name jackage 20addres beijin>>> 
复制代码

11.集合

集合介绍

set 集合是一个无序不重复元素的集,基本功能包括关系测试和消除重复元素。集合使用大括号({})框定元素,并以逗号进行分隔。但是注意:如果要创建一个空集合,必须用 set()而不是{},因为后者创建的是一个空字典集合数据类型的核心在于自动去重。


>>> s = set([1,2,3,4,5])>>> s{1, 2, 3, 4, 5}>>> e = set('hello world')>>> e{'h', ' ', 'e', 'o', 'r', 'd', 'l', 'w'}>>> >>> f = set([1,2,3,1,2,5,1])>>> f{1, 2, 3, 5}   # 不重复元素的集>>> 
复制代码

添加元素

通过 add(key)方法可以添加元素到 set 中,可以重复添加,但不会有效果。


>>> s = set([1,2,3,4,5])>>> s{1, 2, 3, 4, 5}>>> s.add(6)  # 添加元素 >>> s{1, 2, 3, 4, 5, 6}>>> s.add(6)>>> s{1, 2, 3, 4, 5, 6}>>> 
复制代码

集合更新

可以通过 update()方法,将另一个对象更新到已有的集合中,这一过程同样会进行去重


>>> s{1, 2, 3, 4, 5, 6}>>> s.update('jack')>>> s{1, 2, 3, 4, 5, 6, 'j', 'c', 'a', 'k'}>>> 
复制代码

删除元素

通过 remove(key)方法删除指定元素,或者使用 pop()方法。注意,集合的 pop 方法无法设置参数,删除指定的元素


需要注意的是,集合不能取出某个元素,因为集合既不支持下标索引也不支持字典那样的通过键值对获取。


>>> s.remove('c')>>> s{1, 2, 3, 4, 5, 6, 'j', 'a', 'k'}>>> s.pop()1>>> s{2, 3, 4, 5, 6, 'j', 'a', 'k'}>>>
复制代码


发布于: 刚刚阅读数: 4
用户头像

一边做一边变得优秀,加油呀 2022-09-19 加入

大家好,我是小鱼新人来报道哈。 CSDN,阿里云专家.....

评论

发布
暂无评论
【Python 基础学习】-元组-字典-集合_11月月更_度假的鱼🐟_InfoQ写作社区