字典 集合以及相关转换(已更新)

字典

字典的特性和常见操作

字典是Python语言中唯一的映射类型
key(键)-value(值)结构,key必须为不可变数据类型,必须唯一,字典无序,通过key查找value。列表是通过索引查找的。
字典创建的关键字是dict.
在这里插入图片描述

字典的常见操作:
1、查找,dic.keys()、dic.values、dic[‘key’] 、dic.items和dic.get(‘key’)

dic.keys():返回字典里所有Key的列表
dic.values():返回字典里所有value的列表
在这里插入图片描述
dic[‘key’] :返回‘key’对应的value值,不存在报错
dic.items:返回字典里所有key,value元祖的列表字典项在列表中的排列顺序不确定。
在这里插入图片描述
dic.get(’key’):返回‘key’对应的value值,不存在返回None,不报错
在这里插入图片描述
可指定“默认”值,这样将返回你指定的值而不是None。
在这里插入图片描述

2、新增:赋值新增:dic[‘key’] = 'value和dic.setdefault

dic[‘key’] = 'value
‘key’若存在,把值改成‘value’,不存在则创建
dic.setdefault(’key’)
'key’若存在,返回对应值,不存在则创建
指定的键不存在时,setdefault返回指定的值并相应地更新字典。如果指定的键存在,就返回其值,并保持字典不变。与get一样,值是可选的;如果没有指定,默认为None。
在这里插入图片描述

d = {'name':'xiaoming'}

d.setdefault('address',[]).append('hubei')
print(d)
# {'name': 'xiaoming', 'address': ['hubei']}

3、删除pop() 、del、clear()、popitem()

dic.pop(‘key’,None) ,第二个参数表示找不到‘key’返回None.
pop()会返回删除的值
在这里插入图片描述

clear删除所有的字典项,就地执行的(就像list.sort一样),什么都不返回(或者说返回None)
在这里插入图片描述
在这里插入图片描述
popitem随机地删除并返回一个字典项,元祖形式
在这里插入图片描述

4、字典合并,update

dic1.update(dic2),更改dic1,与dic2合并元素,有则覆盖,无则创建
在这里插入图片描述

5、循环

1、for k in dic.keys
2、for k,v in dic.items
3、for key in dic

6、format_map方法映射取值

在这里插入图片描述

7、fromkeys创建一个新字典,其中包含指定的键,且每个键对应的值都是None

在这里插入图片描述

集合

集合的特性和常见操作

确定性,互异性、无序性
创建关键词:set

集合的常见操作:
1、交集:intersection:&
2、并集:union: |
3、差集:difference: -
4、对称差集:symmetric difference
5、判断是否相等 == !=
6、判断是否在集合内:in not in
7、判断是否不想交:isdisjoint() 是不是包含issuperset():>=,是不是被包含issubset():<=
8、单个元素增加:add,多个元素增加,比如序列:update
se = {1, 2, 3}
se.add('hello')
print(se)
{1, 2, 3, 'hello'}
se.update('hello')
print(se)
{1, 2, 3, 'h', 'o', 'l', 'e'}
se.update([1, 3, 5, 6, 7, 8])#列表
print(se)
{1, 2, 3, 5, 6, 7, 8}  #互异性
se.update((1, 2, 3, 9, 10, 'hello'))#元祖也可以,新增过后就不是元祖了
print(se)
{1, 2, 3, 9, 10, 'hello'}

se.add((1, 2, 3, 9, 10, 'hello'))
print(se)
{1, 2, 3, (1, 2, 3, 9, 10, 'hello')}#add添加作为单个元素,保留原数据格式
se.update({3:'hello'},{'we':'family'})
print(se)
{'we', 1, 2, 3} #字典只添加 Keys
9、删除:dic.discard(),不报错和dic.remove()异常报错,pop()随机删除,集合为空集合时报错,clear()清空。

字符串,字典,列表,元祖,集合的转换:

字符串、列表、元祖、字典、集合 创建关键字:str、list、tuple、dict、set
1、列表和元祖互换比较简单,元祖可看成不可更改的有序列表
字符串有序,转换成列表会拆分,

s = '12333'
l3= list(s)
print(l3)`
['1', '2', '3', '3', '3']

2、列表,字典,元祖,集合转字符串直接str一下,可以用eval()再转换成原数据类型,如果列表里元素都是字符串可以join拼接一下:

l = [1, 2, 3, 'hello']
s1 = str(l)
print(s1)
print(type(s1))

[1, 2, 3, 'hello']
<class 'str'>
s = ('xiaoming',123)
s1 = str(s)
print(s1)
print(type(s1))
('xiaoming', 123)
<class 'str'>

s2 = eval(s1)
print(s2)
print(type(s2))
('xiaoming', 123)
<class 'tuple'>

3、列表转集合会去除相同元素,字符串转集合会去除相同字母,字典转集合,转列表只转Key:

l = [1, 2, 3, 1, 1, 2]
s = set(l)
print(s)
{1, 2, 3}
s = 'hello'
print(set(s))
{'h', 'o', 'e', 'l'}
s = {123: 'we',124:'are'}
print(set(s))
{123, 124}

4、zip函数两个列表转字典,元素不一致时以元素少的为准。

l1 = [123,'we']
l2 = [234,'are']
print(dict(zip(l1,l2)))
{123: 234, 'we': 'are'}

print(dict(zip(l2,l1)))
{234: 123, 'are': 'we'}
l1 = [123,'we']
l2 = [234,'are','family']

print(dict(zip(l1,l2)))
{123: 234, 'we': 'are'}

print(dict(zip(l2,l1)))
{234: 123, 'are': 'we'}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值