当前位置: 首页 > article >正文

Python笔记2-六种标准数据类型3

4、元组(Tuple)

  • 不可变,是序列

  • 元组用圆括号定义(圆括号可省略),没有元素类型限制

tuple(literable)

  • 将一个literable对象转化为元组并返回,如果没有实参,则返回空元组

5、字典(dictionary)

  • 字典中的元素是以键值对(key:value)的形式存在的,是一种映射结构

  • 字典中的键不能存在可变数据,值没有限制

  • 字典不是序列,是可变的

  • 字典当作iterable操作时,只有键参与迭代

dict(**kwargs)/dict(mapping)/dict(iterable)

  • 用于创建一个字典并返回

  • zip(*iterables)映射

  • **kwargs表示可以接受无穷大个关键字参数,将它们打包成一个字典

  • **kwargs必须放在所有形参的后面

print(dict())#{}
print(dict(two=2, eleven=11,money='钱'))#{'two': 2, 'eleven': 11, 'money': '钱'} 

#zip(iterables)
iter1 = '🐱🐕🐖🐂' 
iter2 = ['猫','狗','猪','牛']
res = zip(iter1, iter2) #返回迭代器
print(list(res))#[('🐱', '猫'), ('🐕', '狗'), ('🐖', '猪'), ('🐂', '牛')]
  • 以iterable的每个元素作为键,value作为所有值,创建一个字典,value不指定时,默认为none

字典的方法

dict.keys()

  • 返回字典所有的键

dict.values()

返回字典所有的值

dict.items()

返回字典所有的键和值

返回字典的视图对象

1.可迭代性

2.动态性:当增删改字典中的键值后,其结果也会自动发生改变

# 返回字典的视图对象,具有可迭代性
dic = {'🐱' : '猫','🐕' : '狗', '🐖':'猪', '🐂':'牛'}
view_keys = dic.keys() 
view_values = dic.values() 
view_items = dic.items() 
print(view_keys)# dict_keys(['🐱', '🐕', '🐖', '🐂']) 
print(view_values)# dict_values(['猫', '狗', '猪', '牛']) 
print(view_items)# dict_items([('🐱', '猫'), ('🐕', '狗'), ('🐖', '猪'), ('🐂', '牛')])

dict.get(key,default=None)

  • key:键

  • default:如果指定的键不存在时,返回该值,默认为None

  • 功能:返回指定的键key对应的值,如果key不在字典中,则返回default

dict.update([other])

  • 使用来自other更新字典,没有返回值

  • 可以像dict()那样传参

dict.pop(key[,default])

  • key:键

  • default:指定当键不存在时应该返回的值

  • 移除指定的键所对应的键值对,并返回该键对应的值,如果该键不在字典中,则返回default指定的值

  • 如果 default未指定值且指定的键不存在于字典中,则报错。

dict.popitem()

  • 从字典中移除最后一个键值对,并返回它们构成的元组(键,值)

dict.setdefault(key, default=None)

  • 如果字典存在指定的键,则返回它的值

  • 如果不存在,返回default指定的值,并且新增该键值对

  • 和dict.get()功能相似

dic = {'🐱' : '猫','🐕' : '狗', '🐖':'猪', '🐂':'牛'} 
print(dic.get('🐱'))#猫 
print(dic.setdefault('🐱'))#猫 
print(dic)#{'🐱': '猫', '🐕': '狗', '🐖': '猪', '🐂': '牛'} 
print(dic.get('🐇'))#None 
print(dic.setdefault('🐇'))#None 
print(dic)#{'🐱': '猫', '🐕': '狗', '🐖': '猪', '🐂': '牛', '🐇': None}

dict.copy()

  • 返回原字典的浅拷贝

dic.clear()

  • 移除字典中的所有元素,无返回值

new_d = dic.copy() 
print(new_d)#{'🐱': '猫', '🐕': '狗', '🐖': '猪', '🐂': '牛'} 
new_d.clear() 
print(dic)#{'🐱': '猫', '🐕': '狗', '🐖': '猪', '🐂': '牛'} 
print(new_d)#{}

6.集合(Set)

  • 可变,不是序列

  • 集合也用花括号定义,但其中的元素不是键值对

  • 集合中不能存在可变的数据

  • 集合是无序的

  • 集合的元素如果重复,会自动去重

  • 创建空集合必须用set(),因为{}是用来创建空字典的

  • 可以用于判断父子集关系

set([iterable])

  • 将一个iterable对象转化为集合 并返回,如果没有实参,则返回 空集合

    print(set()) #set() 
    print(set('welcome')) #{'m', 'c', 'w', 'l', 'e', 'o'} 
    print(set([4, 5, 6])) #{4, 5, 6}

集合方法

set.update(*iterables)

  • 更新集合

set.add(elem)

set.remove(elem)

  • 从集合中移除元素elem,若不存在,则报错

set.discard(elem)

  • 从集合中移除元素elem,如果不存在,无任何操作

set.pop()、set.copy()、set.clear()

总结

     除了数字,其他标准类型均为可迭代对象,字符串、列表、元组是序列,列表、字典、集合可变


http://www.kler.cn/a/406581.html

相关文章:

  • RT_Thread内核源码分析(三)——线程
  • PVE的优化与温度监控(二)—无法识别移动硬盘S.M.A.R.T信息的思考并解决
  • 3.langchain中的prompt模板 (few shot examples in chat models)
  • 14 go语言(golang) - 并发编程goroutine和channel
  • Redis的特性ubuntu进行安装
  • 使用 FFmpeg 提取音频的详细指南
  • android 使用MediaPlayer实现音乐播放--权限请求
  • PHP 高并发解决方案
  • Easyexcel(2-文件读取)
  • Elasticsearch 中的热点以及如何使用 AutoOps 解决它们
  • 【Lambda基础】Python Lambda 函数的 9 种玩法
  • 【1.2 Getting Started--->Installation Guide】
  • Cmakelist.txt之Linux-redis配置
  • Java、Android引用类型
  • rust中解决DPI-1047: Cannot locate a 64-bit Oracle Client library问题
  • C++ String
  • 【嵌入式】手把手教你入门STM32的GPIO:使用GPIO输入
  • SpringBoot入门准备——Maven的使用
  • Web3与智能合约:区块链技术下的数字信任体系
  • Python世界:力扣题解875,珂珂爱吃香蕉,中等
  • Python操作neo4j库py2neo使用之py2neo 删除及事务相关操作(三)
  • uniapp跨域问题解决方案
  • 博客文章怎么设计分类与标签
  • Java SE 与 Java EE:基础与进阶的探索之旅
  • PAL(Program-Aided Language Model)
  • android 使用MediaPlayer实现音乐播放--获取音乐数据