python里的字典和集合

一.字典

1.字典的定义

字典是不可变的,是用hash值来存储的.字典的key必须是不可变的(可哈希)

dict = {key1:value1 , key2:value2}

2.字典的增删改查

直接dict[newkey]="newvalue"

dict.setdefault("key","value")

setdefault执行流程:

判断你的key是否存在,如果已经存在就不再新增.如果不存在,执行新增操作

dic = {"jay":"周杰伦","jj":"林俊杰"}
dic["j"] = "我也不知道"   #dic[newkey] = "newvalue"
#dic.setdefault("j","我也不知道")
print(dic)

dict.pop("key")   指定删除key和对应的value

dict.popitem()    从后往前删 在早期字典是无序的,所以早期是随机删除

del dict[key]        指定删除key和对应的value

dict.clear()           清空字典

dic = {"张艺谋":"红高粱","李安":"断背山","陈凯歌":"霸王别姬"}
dic.pop("张艺谋")   #指定删除
dic.popitem()     #删除最后一个   python早期版本是无序的
del dic["李安"]    #指定删除
dic.clear()    #清空
print(dic)

dict[oldkey] = newvalue

dict1.update(dict2)  #把dict2的内容更新到dict1中

直接使用key就能查到value

dict.get(key,None)  当key存在查询value,不存在返回None(None可以换)

dict.setdefalut()  第一个功能是添加(当key不存在).第二个功能是查询(当key存在)

setdefalut整个执行流程:

判断给的key是否存在. 如果存在. 就不执行新增流程.直接查询出这个key对应的value
如果key不存在. 先执行新增操作. 再使用key把对应的value查询出来

dic = {"刘能":"王小利","赵四":"刘晓光","王木生":"范伟"}
print(dic["刘能"])
print(dic.get("王木生"))
print(dic.get("刘能呢","没有"))
setdefault     两个功能    添加和查找
检查是否有key  如果没有,先添加到字典,再使用key查询value
                          如果有key,直接查询key的valu
s = dic.setdefault("赵四四","流光")
print(s)

3.字典的嵌套

一层一层寻找,和列表一样

4.字典的遍历

直接for循环

for key in dic: # 直接循环字典拿到的是key, 有key直接拿value
     print(key)
     print(dic[key])

dict.keys()     拿到字典的每一个key

dict.values()    拿到字典的每一个value

dict.items()    拿到字典的所有键值对

 for k, v in dic.items(): # 遍历字典最简单的方案
      print(item) # (‘赵四‘, ‘刘晓光‘)
      k, v = item # 解构
      k = item[0]
      v = item[1]
      print(k, v)

遍历字典的两种方法:

dic = {"周五":"等着放假","周六":"放假","周日":"等着上课"}
#遍历字典的两种方法
for i in dic:
    print(i,dic[i])   # i是遍历到的key  dic[i]是对应的value
for k,v in dic.items():  #dic.items()
                         拿到的是[(‘周五‘, ‘等着放假‘)]
                          解包
    print(k,v)

二.set集合

1.set集合的用处

用的最多的就是去重复

lst = ["麻将", "牌九", "骰子", "扑克", "骰子", "扑克", "扑克", "扑克", ]
print(list(set(lst)))

2.set集合的增删改查

s.add(元素)     直接添加      set是无序的

s.update()        迭代添加

s = {"刘嘉玲","赵本山","罗纳尔多","剑神"}
s.add("剑圣")
s.update("剑圣")  #迭代添加
s.update(["剑圣"]

s.pop()     随机删除一个

s.remove(元素)    指定删除一个

s.pop()   #因为set是无序的 ,所以随机删.  ()里没有arg
s.remove("剑神")   #指定删

只能先删除再添加

可迭代,用for循环

原文地址:https://www.cnblogs.com/q767498226/p/10046834.html

时间: 2024-11-15 00:43:24

python里的字典和集合的相关文章

Python数据类型(字典和集合)

1.5 Dictionary(字典) 在Python中,字典用放在花括号{}中一系列键-值对表示.键和值之间用冒号分隔,键-值对之间用逗号分隔. 在字典中,你想存储多少个键-值对都可以.每个键都与一个值相关联,你可以使用键来访问与之相关联的值.与键相关联的值可以是数字.字符串.列表乃至字典.事实上,可将任何Python对象用作字典中的值. >>> alien_0 = {'color': 'green', 'point': 5} >>> print(alien_0) {'

Python对象类型——字典和集合

字典 1.字典本身是哈希的,是无序的,但字典中的键的集合或值的集合可以是有序的,通过keys()或values()返回一个列表,该列表是可排序的.注:哈希表的算法是获取键,对键执行一个叫做哈希函数的操作,并根据计算的结果,选择在数据结构的某个地址中来存储你的值. 2.字典的创建可以直接赋值:可以通过工厂函数dict()生成,如果参数是可迭代的,即一个序列或是一个迭代器,或是支持迭代的对象,则没个可迭代的元素必须成对出现,eg:dict([['x',1],['y',2]]):还可以用内建方法fro

Python 元组、字典、集合操作总结

元组 a=('a',) a=('a','b') 特点 有序 不可变,不可以修改元组的值,无法为元组增加或者删除元素 元组的创建 a=('a',) a=('a','b') tuple('abcd') 转化为元组 tuple(i for i in range(10)) 生成器推导式转化为元组,生成器推导式产生的生成器对象只能遍历一次 g=( i for i in range(10)) next(g) 单步迭代生成器对象 for i in g: print(i,end='') 直接迭代生成器对象 a=

python路4—字典、集合

#!/usr/bin/python3 #字典---增删改查 #穿件一个字典info >>> info = { ... 'student01':'TenLan Wu', ... 'student02':'LongZe Luola', ... 'student03':'XiaoZe Maliya' ... ... } #字典查询 >>> info {'student03': 'XiaoZe Maliya', 'student01': 'TenLan Wu', 'studen

python 学习笔记day05-python字典和集合、条件和循环、文件和输入输出

字典和集合 字典基础操作 创建字典 通过{}操作符创建字典 通过dict()工厂函数创建字典 通过fromkeys()创建具有相同值的默认字典 >>> aDict = {'Name':'Bob','age':23}                >>> import tab                >>> bDict = dict((['name','bob'],['age',23]))                >>> p

Python 之字典与集合

进入python的字典与集合的学习. 先回顾下集合. 在python中,集合用set表示.花括号与set()可以用来创建集合. 还是先创建一个空的集合 不能用s={}来创建一个集合,创建一个空的集合使用set(). 集合是无序的,不重复的,所以在创建集合的时候重复的元素会被去掉. 集合的基本运算: 交    & 并    | 差    - 对称差 ^ 举个例子: 设集合s1={1,2,3,4},集合s2={2,3,5} 则: >>> s1={1,2,3,4} >>&g

Python黑帽编程2.3 字符串、列表、元组、字典和集合

Python黑帽编程2.3  字符串.列表.元组.字典和集合 本节要介绍的是Python里面常用的几种数据结构.通常情况下,声明一个变量只保存一个值是远远不够的,我们需要将一组或多组数据进行存储.查询.排序等操作,本节介绍的Python内置的数据结构可以满足大多数情况下的需求.这一部分的知识点比较多,而且较为零散,需要认真学习. 2.3.1  字符串 字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 创建字符串很简单,只要为变量分配一个值即可.例如: var1

Python基础2 列表、字典、集合

本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 names = ['Alex',"Tenglan",'Eric'] 通过下标访问列表中的元素,下标从0开始计数 >>> names[0] 'Alex' >>> names[2] 'Eric' >>> names[-1] 'Eric'

python基础10 字符串操作,字典操作,集合操作

本节内容: 字符串操作 字典操作 集合操作 字符串操作 概述 字符串是以''或""括起来的任意文本,比如'abc',"xyz"等等.请注意,''或""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c这3个字符. 如果字符串本身包含'怎么办?比如我们要表示字符串 I'm OK ,这时,可以用" "括起来表示: "I'm OK" 类似的,如果字符串包含",我们就可以用'