python--字典

字典
1、定义
key-value
不支持默认索引,支持key的索引
支持成员操作符,针对key

s = {}
print(s,type(s))

## 		字典:key-value 键值对
##	 	value值可以是任意数据类型

s = {
 'linux':[100,99,88],
 'python':[190,34,56]
}	
print(s,type(s))

工厂函数

	d = dict()
	print(d,type(d))
	d = dict(a=1,b=2)
	print(d,type(d))

字典的嵌套

student = {
    '123456':{
        'name':'tom',
        'age':'18',
        'score':99
    },
    '657567':{
        'name':'lily',
        'age':'17',
        'score':100
    }

}
print(student['123456']['name'])

2、特性

d = {
    '1':'a',
    '2':'b'
}
print(d['2'])

字典不支持切片

 print(d[:])

成员操作符(针对key)

print('1' in d)
print('1' not in d)

for循环(默认遍历的是key)

for key in d:
print(key)

遍历字典

for key in d:
print(key,d[key])

3、增加

service = {
    'http':80,
    'ftp':21,
    'ssh':22
}

增加一个元素
如果key值存在,则更新对应的value值
如故key值不存在,则添加对应的key-value值

service['mysql'] = 3306
print(service)
service['http'] = 443
print(service)

添加多个key-value值

service_backup = {
  '1':443,
  'tomcat':8080,
  'http':8080
}
service.update(service_backup)
print(service)
service.update(flask=9000,http=8000)
print(service)

setdefault添加key值的时候
如果key值存在,不做修改
如果key值不存在,则添加对应的key-value

service.setdefault('http',9090)
print(service)
service.setdefault('oracle',44575)
print(service)

4、字典的删除

	service = {
	    'http':80,
	    'ftp':21,
	    'ssh':22
	}
	
	 del service['http']		 ##直接从内存中删除
	 print(service)

pop删除指定key对应的value
如果key存在,删除,并且返回删除key对应的value(可以用变量去接收)
如果key不存在,直接报错

	item = service.pop('https')				#没有就报错
	print(item)
	print(service)

popitem删除最后一个key-value值

item = service.popitem()					 #从最后一个删起
print('删除的key-value对是:',item)
print(service)

清空字典内容

service.clear()							 #清空字典
print(service)

5、字典的查看

service = {
    'http':80,
    'ftp':21,
    'ssh':22
}
 查看字典的key值
print(service.keys())
 查看字典的value值
print(service.values())
 查看字典的key-value值
print(service.items())

查看key的value值
key不存在 默认返回None
key不存在,有defaule就返回defale的值

	print(service['https'])
	print(service.get('https',443))

例题1:数字重复统计:
1). 随机生成1000个整数;
2). 数字的范围[20, 100],
3). 升序输出所有不同的数字及其每个数字重复的次数;

		 import random
		 all_num = []
		 for item in range(1000):
		     all_num.append(random.randint(20,100))
		 sorted_nums =sorted(all_num)
		 num_dict = {}
		 for num in sorted_nums:
		     if num in num_dict:
		         num_dict[num] += 1
		     else:
		         num_dict[num] = 1
		 print(num_dict)		 

例子2:1. 随机生成100个卡号;
卡号以6102009开头, 后面3位依次是 (001, 002, 003, 100),
2. 生成关于银行卡号的字典, 默认每个卡号的初始密码为"redhat";

输出卡号和密码信息, 格式如下:
卡号 密码
6102009001 000000
fromkeys第一个参数可以是 list/tulpe/str/set
将第一个参数的元素作为字典的key值
并且所有的key的value值都是一致的

	 card_ids = []
	 for i in range(100):
	     s = '6102009%.3d' % (i + 1)     ##因为i从0开始
	     card_ids.append(s)
	 card_ids_dirt = {}.fromkeys(card_ids, 'redhat')
	 print(card_ids_dirt)
	 print('卡号\t\t\t\t\t密码')
	 for key in card_ids_dirt:
	     print('%s\t\t\t%s' % (key, card_ids_dirt[key]))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值