python:字典【全用法】

python中有列表、元组、集合、字典这四种可以存放多个数据元素的集合,他们在总体功能上都起着存放数据的作用,却都有着各自的特点。本片文章中我们会对字典的用法做详细说明。

演示环境:

python3.6
pycharm中的python3.6

字典(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

在这里插入图片描述

在这里插入图片描述

3.索引:

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])

在这里插入图片描述

  • 9
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值