python 字典

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#__author__ = 'juzi_juzi'
'''
类似于我们常用的字典,根据某个指定的内容,可以找到对应的详细解释;
解释为键值对存放,key -->> value;
特点:
1、存放为键值对的形式;
2、键不重复,值可重复;
3、键不可修改,不可变,值可修改,可存放任何对象;
 
'''
#初始化字典的两种方法:
#1、dict1 = dict()
#2、dict2 = {}
fruit_price={'apple':4,'orange':2.5,'banana':3}
#向字典中添加元素
fruit_price['sugarcane']=10
#修改字典中指定key的value
fruit_price['apple']=2.5
#获取指定key的value
print(fruit_price['orange']) #类似列表的写法,只是将列表的角标换成字典的key;
 
#***************删除指定字典相关内容 ***************
del fruit_price['sugarcane']
print(fruit_price)
 
fruit_price['sugarcane']=10
return_value = fruit_price.pop('sugarcane'#删除给定key的信息,返回key 对应的value;
print('pop key return value is:{} and old fruit_price\
 value is:{}'.format(return_value,fruit_price))
 
fruit_price['sugarcane']=10
fruit_price.clear()  #清空了整个字典,返回None;
print(fruit_price)
 
#***************列表(元祖)转字典相关内容 ***************
#列表(元祖)转字典的前提是,列表(元祖)双元素;
list1 = (1,2)
list2 = ['key','value']
list3 = ['name',['zhangsan','lisi']]
new_dict = dict([list1,list2,list3])
print(new_dict) #{1: 2, 'key': 'value', 'name': ['zhangsan', 'lisi']}
 
#***************列表常用方法 ***************
#get() ,key 不存在fanhui Non,不抛异常;
cars ={'BMW':100,'BUICK':50}
car_bmw = cars.get('BMW') #获取指定key 的值;
car_das = cars.get('DAS',40) #获取指定key 的值,如果key 不存在,用默认的值显示;
print('bmw:{}, das:{}'.format(car_bmw,car_das))
#keys(), values(), items()
print(cars.keys()) #获取所有key,返回dict_keys;
print(cars.values()) #获取所有key,返回dict_value;
print(cars.items()) #获取所有key,返回dict_item;
 
print(list(cars.keys())) #获取所有key,返回keys列表;
print(list(cars.values())) #获取所有values,返回values列表;
print(list(cars.items())) #获取所有items,返回items列表;
 
#update() 更新字典,已有的覆盖,没有的添加;
car2 =  {'Chevy':30,'Infiniti':60}
cars.update(car2) # 返回为None,修改了原字典;
print(cars) # {'BMW': 100, 'BUICK': 50, 'Chevy': 30, 'Infiniti': 60}
 
#popitem()方法,随机弹出字典中的一个Key-value对;看起来似乎总是弹出字典中最后的k-v;
print(cars.popitem()) #返回弹出的key,value组合,tuple(k,v);
k,v = cars.popitem() #这种写法更经常使用;
print('key is {} and value is :{}'.format(k,v))
 
# setdefault()方法,用于根据 key 来获取对应 value 的值;如果key在不存在,那么会先设置默认的value;
#然后在返回value; 其实这个方法叫getdefault更好理解;说白了就是key 存在不存在均能返回value;
cv = cars.setdefault('Citroen',25) #Citroen不存在,设置默认值返回;
bv = cars.setdefault('BMW',25) # BMW key 存在,所以不讲默认值赋予;
print('key not exist get value:{},key exist get value:{}'.format(cv,bv))
print(cars)
 
# fromkeys() 给定多个key,转换成字典的key,可设置默认值;
c_key_list = cars.keys()  #获得cars Key列表;
c_key_tuple = tuple(c_key_list)
new_dict_from_list = dict.fromkeys(c_key_list)
new_dict_from_tuple = dict.fromkeys(c_key_tuple,80)
print(new_dict_from_list)
print(new_dict_from_tuple)
 
posted @   橘子飞飞  阅读(171)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示