python字典

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})

1.字典的定义
s = {}
print(s,type(s))

#赋值
s = {
    'linux':[10,23,23],
    'westos':(23,23,45)
}
print(s,type(s))
#其他定义方法,以及赋值
d = dict()
print(d,type(d))
d = dict(a=1,b=2)
print(d,type(d))

#字典的嵌套

students = {
    '11':{
        'name':'tom',
        'age':19,
        'score':20
    },
    22:{
        'name':'lily',
        'age':18,
        'score':100
    }
}
print(students['11']['name'])
print(students[22]['name'])
#所有key值都一样
list1 = [1,2,3,4,5]
dd = {}.fromkeys(list1,'23')
print(dd)

2.增加

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

#增加一个元素
#如果key值存在,则更新对应的value值
service['mysql'] = 3306
print(service)
service['http'] = 443
print(service)

#添加或者更新多个key-value
service_backup = {
    'https':443,
    'tomcat':8080,
    'http':8080
}
service.update(service_backup)
print(service)

#指定条目增加或者更新
service.update(flask=9000,http=8000)
print(service)

#setdefault添加只能处理一条
#如果key存在,不做修改
#如果key值不存在,则添加对应的key-value
service.setdefault('http',9090)
print(service)
service.setdefault('oracle',44575)
print(service)

 

3.删除

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



#删除指定一条key,以及value,将value值返回
#key不存在报错
# item = service.pop('http')
# print(item,service)


#popitem
#默认删除最后一条key-value,将key-value返回
item = service.popitem()
print(item)
print(service)


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

4.查看
service = {
    'http': 80,
    'ftp': 21,
    'ssh': 22
}

# 查看字典的所有key值以及所有value值
print(service.key())
print(service.values())

a = list(service.keys())
print(a)

# 查看字典的key-values值
print(service.items())


# 通过key查看对应的value值,不存在就报错
print(service['http'])

print(service['https'])


#通过get方式查看,不存在不会报错
#key存在就返回对应的value值
#不存在默认返回None,也可以指定返回值
print(service.get('http'))
print(service.get('https', 443))

 

练习1

"""
 # 数字重复统计:
    1). 随机生成1000个整数;
    2). 数字的范围[20, 100],
    3). 升序输出所有不同的数字及其每个数字重复的次数;
"""
import random
all_nums = []
for item in range(1000):
    all_nums.append(random.randint(20,100))

# 对生成的1000个数进行排序,然后加到字典中去
sorted_nums = sorted(all_nums)
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. 用户输入一句英文句子;
    # 2. 打印出每个单词及其重复的次数;
"""

s = input('s:')

# 1.把每个单词分割处理
s_li = s.split()
print(s_li)

# 通过字典存储单词和该单词出现的次数
words_dict = {}

for item in s_li:
    if item not in words_dict:
        words_dict[item] = 1
    else:
        words_dict[item] += 1

print(words_dict)

 

练习3

"""
1.随机生成100个卡号;
  卡号以6102009开头,后面3位依次是(001,002,003, ... 100)
2.生成关于银行卡号的字典,默认每个卡号的出是密码为“redhat”
3.输出卡号和密码信息,格式如下:
卡号              密码
xxxxx             xxxxxxx
"""
import random

count = int(input('Input Count:'))
num_LL = []
while count > 0:
    num_rand = (random.randint(1, 100))
    ietm = '61020090' + '%03d' % (num_rand)
    if ietm not in num_LL:
        num_LL.append(ietm)
        count -= 1
#卡号初始化密码保存在字典中
d = {}.fromkeys(num_LL, 'redhat')
print('卡号:\t\t\t 密码:')
for i, v in d.items():
    print(i, '\t', v)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值