元组、字典、集合的介绍

一、元组

Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。
元组也是容器型数据类型 , 将()作为容器的标志,多个元素之间用逗号隔开:(元素1,元素2,元素3)
元组不可变(不支持增删改);元组是有序的(支持下标操作)
元素没有什么要求

空元组:()
tuple = ()
print(type(tuple))  # <class 'tuple'>
空元组:()
tuple = ()
print(type(tuple))  # <class 'tuple'>
多个元素的元组
tuple1 = (10, 20, 30)
print(type(tuple1))  # <class 'tuple'>
变量 = 元素1,元素2,元素3,元素4,元素5
tuple2 = 1, 2, 3, 4, 5, 6, 7
print(type(tuple2))  # <class 'tuple'>

获取元组中的元素

  • 获取单个
tuple2 = 1, 2, 3, 4, 5, 6, 7
print(tuple2[3])  # 4
  • 切片多个
tuple2 = 1, 2, 3, 4, 5, 6, 7
print(tuple2[1:4])  # (2, 3, 4)
  • 遍历
for i in tuple2:
    print(i)  # 1234567

for i in range(len(tuple2)):
    print(tuple2[i])  # 1234567
  • 变量1 变量2 变量3… = 元组 注意:在这儿变量的个数要和元组中的元素的个数要保持一致
tuple3 = (10, 20, 30)
x, y, z, = tuple3
print(x, y)  # 10 20
  • 变量1 变量2 变量3… = 元组 前面变量的个数小于元组的个数 ,并且有且只有一个变量前有*
tuple3 = (10, 20, 30, 40, 50)
x, *y = tuple3
print(x, y)  # 10  [20, 30, 40, 50]

二、字典

字典是容器型数据类型,将{}作为容器的标志,多个元素用逗号合开(字典的元素都是键值对):{键1:值1,键2,值2}
字典是可以变的 ,支持增删改查,字典是无序的 ,不支持下标操作
字典中的元素: 键值对
键 - 不可变:唯一 、 一般都是字符串
值 - 任何类型的数据
每个字典里的key都是唯一的,如果出现了多个key,后面的value会覆盖前一个key对应的value.

获取单个元素对应的值
  • 字典[key] - 获取字典中指定kay对应的值(key不存在会报错)
stu1 = {'name': '张三', 'age': 30, 'gender': '男', 'id': 10011,
 'height': 170, 'scoer': 98}
print(stu1['gender'])  # 男
print(stu1['height'])  # 170
  • 字典.get(key) - 获取字典中指定的key对应的值(如果key不存在不会报错,返回None) 。字典.get(key,默认值) - 获取字典中指定的key对应的值(如果key不存在返回默认值)
stu1 = {'name': '张三', 'age': 30, 'gender': '男', 'id': 10011,
 'height': 170, 'scoer': 98}
print(stu1.get('weight'))  # None
print(stu1.get('weight', 65))  # 65

遍历

  • for 变量 in 字典:
    循环体
    注意 :变量取到的是字典中所有的key
stu1 = {'name': '张三', 'age': 30, 'gender': '男',
 'id': 10011, 'height': 170, 'scoer': 98}
for i in stu1:
    print(i, stu1[i])
  • for 变量 字典.values():
    循环体
    变量取到的是字典所有的值
stu1 = {'name': '张三', 'age': 30, 'gender': '男', 
 'height': 170, 'scoer': 98}
for i in stu1.values():
    print(i)
  • for 变量1 ,变量2 in 字典.items():
    循环体
    变量1能取到字典所有的key,变量2取到的是字典所有的值
stu1 = {'name': '张三', 'age': 30, 'gender': '男', 
'height': 170, 'scoer': 98}
for x, y in stu1.items():
    print(x, y)

增 、改

  • 语法1 :
    字典[key] = 值
    如果Key存在 ,就将 key 对应的值修改成指定的值(改)
    如果key不存在,以‘key :值’ 的形式添加一个键值对(增)
stu1 = {'name': '张三', 'age': 30, 'gender': '男', 
 'height': 170, 'scoer': 98}
stu1['age'] = 28
print(stu1)
  # {'name': '张三', 'age': 28, 'gender': '男',
   'height': 170, 'scoer': 98}

stu1 = {'name': '张三', 'age': 30, 'gender': '男',
 'height': 170, 'scoer': 98}
stu1['weighi'] = 65
print(stu1) 
 # {'name': '张三', 'age': 30, 'gender': '男',
 'height': 170, 'scoer': 98, 'weighi': 65}
  • 语法2 :
    字典.setdefault =(键, 值)
    如果Key存在 ,就不变
    如果key不存在,以‘key :值’ 的形式添加一个键值对
stu1 = {'name': '张三', 'age': 30, 'gender': '男', 'height': 170, 'scoer': 98}
stu1.setdefault("weight", 60)
print(stu1)

  • del
    del 字典[key] - 删除指定key对应的键值对 ,key 不存在会报错
stu1 = {'name': '张三', 'age': 30, 'gender': '男', 'id': 10011}
del stu1['id']
print(stu1) 
 # {'name': '张三', 'age': 30, 'gender': '男'}
  • pop
    字典.pop(key) - 取出字典中指定key对应的值 ,并且返回被取出的值
stu1 = {'name': '张三', 'age': 30, 'gender': '男'}
stu1.pop('gender')
print(stu1)  
 # {'name': '张三', 'age': 30}
  • clear
    字典.clear() - 清空

相关方法

字典不支持加法运算和乘法运算, 比较运算字典只支持比较相等 ,不支持比较大小
print({'a': 1, 'b': 2} == {'b': 2, 'a': 1})  #True
  • 数据 in 字典 – 判断字典中是否存在指定的key
  • 数据 not in 字典 – 判断字典中是否不存在指定的key
cat = {'name':'花花','age':2,'color':'白色'}
print('name'in cat)    #True
print('花花'in cat)     #False
  • len(字典) - 统计字典中键值对的个数
cat = {'name':'花花','age':2,'color':'白色'}
print(len(cat))  # 3
  • dict(数据) - 将自定的数据转换成字典
    数据的要求:1 是容器型数据类型 2 数据中元素是有且只有两个元素的容器(小容器) 3 小容器中的第一个元素是不可变的
x = [(1,2),(3,4),(5,6)]
dict1 = dict(x)
print(dict1) 
  # {1: 2, 3: 4, 5: 6}
  • 字典转换成其它的数据类型
    bool(字典) — 空字典会转换成False ,其它都是True
    list(字典) —将字典所有的key作为列表的元素
    tuple(字典) —将字典所有的key作为列表的元素
cat = {'name':'花花','age':2,'color':'白色'}
print(list(cat))
  • dict.fromkeys(序列) - 创建一个新的字典,字典中的key是序列中的元素,值是None
    dict.fromkeys(序列,值) - 创建一个新的字典,字典中的key是序列中的元素,值是指定的值
dict2 = dict.fromkeys(['name','age','gender','score'])
print(dict2)
dict2 = dict.fromkeys(['name','age','gender','score'],0)
print(dict2)
  • 字典.update(序列) - 用序列生成的字典去更新原字典,方式 不存在就添加 ,存在就修改

三、集合

集合是容器型数据类型 ,将{}作为容器的标志,里面多个元素用逗号隔开:{元素1,元素2,元素3}
集合是可变的(支持增删改) 集合是无序的
集合中元素是不可变的并且唯一的

  • 空集合
    set()

  • 集合没有办法直接获取单个元素,只能遍历

            for 变量 in 集合:
                   循环体
         变量取到的就是集合中每个元素
       nums = {23, 24, 89, 90}
       for i in nums:
            print(i)
    

  • 集合.add(元素) - 往集合中随机位置添加指定元素
  • 集合.update(序列) - 将序列中的元素全部添加到集合

nums.add(100)
print(nums)
nums.update('abc')
print(nums)

  • 集合.remove(元素) - 删除集合中指定的元素(元素不存在报错)
  • 集合.discard(元素) - 删除集合中指定的元素(元素不存在不会报错)
nums = {23, 24, 89, 90}
nums.remove(24)
print(nums)
  # {89, 90, 23}
nums.discard(88)
print(nums)
  # {89, 90, 23}

集合无法修改
数学集合运算
python中的集合支持数学集合运算:&(求交集)、|(求并集)、-(求差集)、^(对称差集)、>/<(判断是不是真子集)

set1 = {1, 2, 3, 4, 5, }
set2 = {4, 5, 6, 7, 8, 9}
print(set1 & set2) 
 # 两个集合公共部分 {4, 5}
print(set1 | set2)
 # 两个集合合并成一个 {1, 2, 3, 4, 5, 6, 7, 8, 9}
print(set1 - set2)
 # 集合1-集合2  集合1中除了集合2剩余的部分 {1,2,3}
print(set2 - set1)
 # 集合2-集合1  集合2中除了集合1剩余的部分 {1,2,3}
print(set1 ^ set2) 
 # 去掉两个集合公共的部分,剩余的部分 {1, 2, 3, 6, 7, 8, 9}
print(set1 > set2)
 # 判断集合2是否是集合1的真子集
print(set1 < set2)
 # 判断集合1是否是集合2的真子集
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python编程语言中,有四种常用的集合数据类型,它们分别是列表(List)、元组(Tuple)、字典(Dictionary)和集合(Set)。列表是一种有序和可更改的集合,允许重复的成员。元组是一种有序且不可更改的集合,也允许重复的成员。字典是一个无序、可变且有索引的集合,其中没有重复的成员。而集合是一种无序和无索引的集合,没有重复的成员。这四种集合数据类型在Python中都有着不同的特点和用途。 在Python中,列表、元组和字符串都属于序列,它们的元素都可以通过编号进行访问。而字典则属于映射,其中的元素是以键值对的形式存在的。集合则不属于序列或映射中的任何一种,它是一种独立的数据类型,用于存储一组不重复的元素。 总结起来,Python中的列表(List)、元组(Tuple)、字典(Dictionary)和集合(Set)都是常用的集合数据类型,它们各自有着不同的特点和用途。列表是有序和可更改的集合元组是有序且不可更改的集合字典是无序、可变且有索引的集合集合是无序和无索引的集合。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [浅谈python四种集合数据类型—【列表、元组集合字典】](https://blog.csdn.net/QWERTYzxw/article/details/121479048)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [python 元组集合字典](https://download.csdn.net/download/weixin_38603219/13752298)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值