python的字典

字典(dict):
无序的数据集合
通常输出顺序和定义的顺序不一致
通过键值对/key-value联系起来
字典中的key必须保证唯一,但是value可以重复
使用字典即通过找到其中的key来指向对应的value

语法:字典的每个键值对使用“:”冒号进行分割,多个键值对使用“,”逗号分割。整个字典被一对“{}”包括起来。

1.定义:
s = {} ##空字典定义
d = dict() ##空字典定义

键值定义:s = {‘westos’:[11,33],‘abc’:[114,444,1]}

d = dict(a=1,b=2) ##定义

2.字典的嵌套:

students = {
‘0311’:{
‘name’:‘laoli’,
‘age’:39,
‘score’:59
},
‘0322’:{
‘name’:‘westos’,
‘age’:18,
‘score’:61
}
}
print(students[‘0311’][‘name’]) ###指定输出了laoli

print({}.fromkeys({‘1’,‘2’},‘000000’)) ##指定输出格式为集合,所有key对应的value都为000000

.索引:

d = {‘1’:‘a’,‘2’:‘b’}
print(d[‘1’]) ###通过键值索引,得到value值

字典的key是唯一的,没有重复

4.成员操作赋:

print(‘1’ in d)
print(‘1’ not in d)

5.迭代:

for key in d:
print(key) ###默认遍历key

for key in d:
print(key,d[key]) ##打印所有,包括key和对应的value

for k,v in d.items():
print(k,v) ##打印所有,同上

6.增加:

services = {
‘http’:80,
‘mysql’:3306,
‘smtp’:25
} #定义一个字典

services[‘ftp’] = 21 ###添加单个【添加已存在的为更改】
print(services)

services_backup = {
‘https’:443,
‘http’:8080
services.update(services_backup)
##添加多个 ##将另一个字典中的内容添加到原字典,相同key值的内容被替换,其余内容添加
print(services)

services.update(flask=9000,http=8000) ##直接添加多个内容
print(services)

services.setdefault(‘httpd’,20)
##setdefault添加key值,如果key存在,不做修改。如果key不存在,则添加对应的key-value

7.删除:

1.del services[‘http’] ##删除指定key-value对

2.services.pop(‘http’) ##删除指定key-value对
#pop 删除指定的key的key-value
#key存在,则删除,并返回对于的value
#key不存在,报错

3.services.popitem() ###删除最后一个key-value
item = services.popitem()
print(item) ##得到被删除的key-value对

4.services.clear() ###清空字典 ##会得到一个空字典

8.查看:

print(services.keys()) ##查看key值
print(services.values()) ###查看value值
print(services.items()) ##查看key-value

print(services.get(‘https’)) ###查看key的value ##key不存在,默认返回none。如果key不存在,有default,则返回default

遍历

for k in services:
print(k,services[k])

补充:查看中的get方法:
##get方法,如果key值存在,返回其值,如果不存在,可以指定返回内容
例如:print(services.get(‘https’,‘key not exist’))

字典练习:
数字重复统计:
1.随机生成1000个整数
2.数字的范围【20,1000】
3.升序输出所有不同的数字及每个数字重复的次数

t = []
import random
for i in range(1000): ##生成1000个随机数
t.append(random.randint(20,100)) ##将随机数添加到列表t中
print(t)
t.sort() ##对列表t进行排序
print(t)
dic = {} ##定义空字典,用于后面去重
for num in t: ##遍历列表t中的每个数
if num in dic: ##如果这个数不是第一次出现
dic[num] = dic[num]+1 ##则字典该数对应的value+1
else:
dic[num] = 1 ##如果这个数是第一次出现,则将其value设为1
for key in dic: ##打印key-value
print(key,dic[key])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值