d = {
'1':'a',
'2':'b'
}
#字典不支持索引
# print(d[0])
#字典不支持切片
# print(d[:])
#字典的重复和连接无意义
#成员操作符
# print('1' in d)
#for循环,默认遍历字典的key值
for i in d:
print(i)
#遍历字典
for i in d:
print(i,d[i])
services = {
'http':80,
'ftp':21,
'ssh':22
}
#查看字典的key值
# print(services.keys())
#查看字典的value值
# print(services.values())
#查看字典的key-value值
# print(services.items())
#查看key的value值
#key不存在,默认返回none
#key不存在,有default值,则返回default值
# print(services.get('http'))
# #遍历
# for k,v in services.items():
# print(k,'--->',v)
#
# for k in services:
# print(k,'--->',services[k])
"""
get方法获取指定key对应的value
"""
print(services.get('https','key not exist'))
字典的练习
"""
重复的单词: 此处认为单词之间以空格为分隔符, 并且不包含,和.>;
# 1. 用户输入一句英文句子;
# 2. 打印出每个单词及其重复的次数;
"hello java hello python"
# hello 2
# java 1
# python 1
"""
s = input('s:')
#1.把每个单词分割处理
s_li = s.split()
print(s_li)
#通过字典存储该单词和其出现的次数
word_dict = {}
"""
依次循环遍历列表
如果列表元素不在字典的key中,将元素作为key 1作为value值
如果列表元素在字典的key中,直接更新元素的value值,在原有的基础上加1
"""
for item in s_li:
if item not in word_dict:
word_dict[item] = 1
else:
word_dict[item] += 1
print(word_dict)
"""
数字重复统计:
1) 随机生成1000个整数
2) 数字范围[20,100]
3) 升序输出所有不同的数字及其每个数字的重复次数
"""
import random
di = {}
li = []
for i in range(1000):
li.append(random.randint(20,100))
for y in li:
if y not in di:
di[y] = 1
else:
di[y] += 1
print(sorted(di.items()))
di = {}
li = []
for i in range(1,101):
li.append('6102009' + '%.3d' %(i))
di = di.fromkeys(li,'redhat')
print('卡号\t \t密码')
for k,v in di.items():
print(k + '\t' + v)
"""
模拟轮盘抽奖游戏
# 轮盘分为三部分: 一等奖, 二等奖和三等奖;
# 轮盘转的时候是随机的,
# 如果范围在[0,0.08)之间,代表一等奖,
# 如果范围在[0.08,0.3)之间,代表2等奖,
# 如果范围在[0, 1.0)之间,代表3等奖,
# 模拟本次活动1000人参加, 模拟游戏时需要准备各等级奖品的个数.
"""
import random
dicward = {
'一等奖':[0,0.08],
'二等奖':[0.08,0.3],
'三等奖':[0.3,1]
}
def reward():
number = random.random()
for k,v in dicward.items():
if v[0] <= number <= v[1]:
return k
result = {}
for i in range(1000):
rew = reward()
result[rew] = result.get(rew,0) + 1
for k,v in result.items():
print(k,'--->',v)