IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python基础之元组、字典、集合 -> 正文阅读

[Python知识库]Python基础之元组、字典、集合

Python基础之元组、字典、集合

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 Python 机器学习入门之pandas的使用


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的


提示:以下是本篇文章正文内容,下面案例可供参考

一、元组

元组() 元组推导式照样适用( i for i in tu)

1.1不可修改元素

只有一个元素时末尾加(,),否则会被认为是其他数据类型

1.2 嵌套可正常使用

例:tu=([1,2,3],) print(tu[0][1])–>2

1.3切片可正常使用

例:tu=(1,2,3) print([::-1])

1.4 count

与index一样, index返回第一个匹配到的索引

二、字典 (推导式照样适用)

{键值对,键值对,,},字典可存储任意类型对象键名具有唯一性,是不可变类型,如字符串、数字与元组键值多样化,可以是任何数据类型
字典是 另一种可变容器模型,且可存储任意类型对象

1.python中字典的key都可以是什么?

一个对象能不能作为字典的key,就取决于其有没有__hash_方法。所以所有python自带类型中,除了list,dict,set和内部至少带有上述三种类型之一的tuple之外,其余对象都能当key.

例:比如数值/字符串/完全不可变的元组/函数(内建或自定义)/类(内建或自定义)/方法/包等等。
数值类型注意:因为两个不同的相等数字可以有相同的哈希值,比如1 和 1.0,认为是相同的键

拓展:
字典的key值是可哈希的,字典的存储结构是哈希表,这样字典的查找是性能就会好很多(前提是处理好碰撞),所以字典的key必须是可哈希的
可哈希的意思是:不可变

要求每一个存放到字典中的对象要实现hash函数,这个函数可以产生一个int值,叫做hash value(哈希值),通过这个int值,就可以快速趣味的确定对象在字典中的位置。然而由于Hash碰撞的存在,可能存在两个对象的hash的值是相同的,所以查找字典过程中,要比较hash值,还要比较value值。

字典在内存中存储数据的位置和键的hash也是相关的,逻辑上也相应印证。先计算hash,找到相对应的那片内存空间,里面没有值的话就写入,对于字典来说就是新增键值对;如果已经有值了,就判断新来的键和原来的那里的键是否相等,相等就认为是一个键,对于字典来说就是更新值,不相等就再开空间,相当于字典新增键值对。

2.根据值求键

#方法一:
#filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象;如果要转换为列表 list(),
#改函数接受两个参数,第一个为函数,第二个为序列,序列的每一个元素作为参数传递给函数进行判断,
#然后返回True或False,最后将True的元素放到列表
dict1={'A':'a','B':'b','C':'a'}
print(list(filter(lambda k:dict1[k]=='a',dict1)))#['A', 'C']

#方法二:
dict2={'A':'a','B':'b','C':'a'}
print([k for (k,v) in dict2.items() if v=='a'])#['A', 'C']

#方法三
dict={'A':'a','B':'b','C':'a'}
print(list(dict.keys())[list(dict.values()).index('a')])# A #由字典的值得到键的值 返回第一个的键

3.取值

dict1[‘键名’]–》若键名存在返回键值,若不存则报错
dict1.get(’键名‘)–》若键名存在返回键值,若不存在则返回None
dict1.get(‘键名’,‘默认值’)–》若键名不存在则返回默认值

4.字典常用操作

1.修改元素(有则修改无则增)–》dict1[‘键名’]=新值
2.删除元素 del clear

		 1. del 删除指定元素, del dict1['键名']
		 2. 删除整个字典 del dict1 dict1直接不存在
		 3. clear 清空整个字典 clear dict1 dict1={}

3.len()求长度–》字典中有几个键值对 len(dict1)返回键值对个数
4.key 返回字典里面包含的所有键名的列表

  1. print([li ifor i in dict1]) # [‘键名’,’键名‘]
  2. dict1.key() #dict_key([‘键名’,’键名‘])
#字典基本操作

dict1={'name':23,'sge':'sfs4'}
print(dict1.get('name'))# 23
print(dict1['name'])# 23
print(dict1.get('name','22'),dict1.get('num','44'))#23
dict1['nam']=45 #添加键值对
print(dict1)#{'name': 23, 'sge': 'sfs4', 'nam': 45}
del dict1['nam']
print(len(dict1))# 2
print(dict1.keys())# dict_keys(['name', 'sge'])
print([i for i in dict1])# ['name', 'sge']
print(dict1.values())# dict_values([23, 'sfs4'])
print([i for i in dict1.values()])# [23, 'sfs4']
print(dict1.items())# dict_items([('name', 23), ('sge', 'sfs4')])
print([i for i in dict1.items()])# [('name', 23), ('sge', 'sfs4')]
a=[i for i in dict1.items()]
print(''.join(a[1]))# sgesfs4

三、(set)集合{元素,元素,,,}

1.集合是无序的(全是整数除外,会按从下到大),元素是惟一的

集合无序的实现方式是hash表,字符每次的hash值是随机的,位置是随机的
而整数的hash值是对应的值,位置是固定的,所以是不变的
python中整合的hash值是它本身,浮点数的hash值也是固定的

2.可以为元组或列表去重

3. 添加元素(list(append\extend))

  1. add() 整体添加 ----set.add(‘添加的元素’) 只有一个参数
  2. updata() 分散添加 把传入的元素拆分 一个个放入集合 —set.updata(’'可迭代对象)

4.删除元素

  1. remove(‘元素’) ’元素‘有则删除无则报错
  2. pop() 先无序排列,然后将左边第一个元素删除 若全是数字的话,则从小到大排序,删除左边第一个元素
  3. discard(‘元素’) 有则删除无则不操作

5.交集(&)和并集(|)

& 两者共有的,没有则为空集set()
| 综合的

# 集合操作

se={'1',2,3,4}
se.add('gdg')
print(se)# {2, 3, 4, 'gdg', '1'}
se.update('sfsf')
print(se)# {'s', 2, 3, 4, 'gdg', 'f', '1'}
se.remove('s')
print(se)# {2, 3, 4, 'gdg', 'f', '1'}
set2={4,3,2,4,1}
set3={2,4,3,5,1}
set2.pop()
set2.discard(4)
# set2.remove(4)
print(set2)# {2, 3}
print(set2&set3)# {2, 3}




  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-03 11:08:04  更:2021-08-03 11:10:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/7 8:00:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码