字典小知识点

字典的创建

1.{}; dict()

a = {"name": "ZJ", "age": 18, "dd": [2, 3, 4]}
print(a)
b = dict(name="ZJ", age=18)
print(b)
c = dict([('name', 'ZJ'), ('age', 18)])
print(c)
d = {}
print(d)  # 空的的字典对象
#输出:{'name': 'ZJ', 'age': 18, 'dd': [2, 3, 4]}
#输出:{'name': 'ZJ', 'age': 18}
#输出:{'name': 'ZJ', 'age': 18}
#输出:{}

2.zip()创建

k = ["a", "b", "c"]
v = [100, 200, 300]
d = dict(zip(k, v))
print(d)
#输出:{'a': 100, 'b': 200, 'c': 300}

3.通过fromkeys创建值为空的字典

a = dict.fromkeys(["a","b","c"])
print(a)
#输出:{'a': None, 'b': None, 'c': None}
字典的访问
a = {"name": "ZJ", "age": 18, "job": "programmer"}

1.通过【建】直接访问,不存在则出现异常;

print(a["name"]) #输出:ZJ

2.get().
优点:指定键不存在,返回None,也可以设定键不存在时默认返回的对象

print(a.get("name"))  #输出:ZJ
print(a.get("dddd"))  #输出:None
print(a.get("ddd", "不存在"))  #输出:不存在

3.列出所有键值对,a.items()

print(a.items()) 
#输出:dict_items([('name', 'ZJ'), ('age', 18), ('job', 'programmer')])

4.列出所有键,所有的值,a.keys() a.values()

print(a.keys())  #输出:dict_keys(['name', 'age', 'job'])
print(a.values())  #输出:dict_values(['ZJ', 18, 'programmer'])

5.len(),键值对的个数

print(len(a)) #输出:3

6.检测一个键是否在字典中

print("name" in a) #输出:True

7.给字典新增"键值对"。如果"键"已经存在,则覆盖旧的键值对;如果"键"不存在,则新增“键值对”

a = {"name": "ZJ", "age": 18, "job": "programmer"}
a["address"] = "华府礼尚"
print(a)
 #输出:{'name': 'ZJ', 'age': 18, 'job': 'programmer', 'address': '华府礼尚'}
a["name"] = "ZJ"
print(a) 
#输出:{'name': 'ZJ', 'age': 18, 'job': 'programmer', 'address': '华府礼尚'}

8.使用update()将新字典中所有键值对全部添加到旧字典对象上。如果key有重复,则直接覆盖。

a = {"name": "ZJ", "age": 18, "job": "programmer"}
b = {"name": "ZJ", "money": 1000, "sex": "男的"}
a.update(b)
print(a)
#输出:{'name': 'ZJ', 'age': 18, 'job': 'programmer', 'money': 1000, 'sex': '男的'}

9.删除,del();
删除指定,pop()
删除所有,clear()

a = {"name": "ZJ", "age": 18, "job": "programmer"}
del (a["age"])
print(a) #输出:{'name': 'ZJ', 'job': 'programmer'}
b = a.pop("name")
print(b) #输出:ZJ
a.clear()
print(a) #输出:{}

10.popitem(),随机删除和返回该键值对。若想一个接一个地移除并处理项,这个方法非常有效

a = {"name": "ZJ", "age": 18, "job": "programmer"}
a.popitem()
print(a)   #输出:{'name': 'ZJ', 'age': 18}
a.popitem()  
print(a)  #输出:{'name': 'ZJ'}
a.popitem()  
print(a)  #输出:{}

11.序列解包可用于元组、列表、字典。方便对多个变量赋值

x, y, z = 20, 30, 10
print(y)   #输出:30
x, y, z = (20, 30, 10)
print(z)   #输出:10
(a, b, c) = (10, 20, 30)
print(a)   #输出:10
[a, b, c] = (10, 20, 30)
print(c)   #输出:30

12.items-键;values—值

s = {"name": "ZJ", "age": 18, "job": "teacher"}
a, b, c = s
print(a)  #输出:name
e, d, f = s.values()
print(b)   #输出:age
i, j, h = s.items()
print(i) #输出:('name', 'ZJ')
print(h[0])  #输出:job
print(h[1])  #输出:teacher

13.查找对象

r1 = {"name": "高小一", "age": 18, "salary": "30000", "city": "北京"}
r2 = {"name": "高小二", "age": 19, "salary": "20000", "city": "上海"}
r3 = {"name": "高小五", "age": 20, "salary": "10000", "city": "深圳"}
tb = [r1, r2, r3]

(1)# 获得第二行人的薪资

print(tb[1].get("salary")) #输出:20000

(2)打印表中所有的薪资

for i in range(len(tb)):  # i--> 0,1,2
    print(tb[i].get("salary"))
#输出:30000
#       20000
#       10000

(3) 打印表的所有数据

for i in range(len(tb)):
    print(tb[i].get("name"), tb[i].get("age"), tb[i].get("salary"), tb[i].get("city"))
#输出:高小一 18 30000 北京
#      高小二 19 20000 上海
#      高小五 20 10000 深圳
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值