python中字典的特性

 一、字典的建立

字典的建立
s = {}
print(s,type(s))

字典:key-value 键值对
s = {
    'linux':[100,77,88],
    'westos':[99,77,66],
}

print(s,type(s))

 

 

2、工厂函数


工厂函数
自动生成一个字典
d = dict()
print(d,type(d))
d = dict(a=1,b=2)
print(d,type(d))
#字典的嵌套
student = {
    '123':{
        'name':'tom',
        'age':19,
        'score':99
    },
    '456':{
        'name':'lily',
        'age':19,
        'score':68
    }
}
print(student)

 

 

3、字典的特性


#字典的特性
# 书写格式:
d = {
    '1':'a',
    '2':'b',
    'name':4
}


#字典不支持切片
print(d['1'])               ##该方式默认为查找对应的是key后的value值
print(d['2'])
print(d['name'])

#成员操作符  针对的是key
print('1' in d)
print('a' in d)

#for 循环 针对的是key
for key in d:
    print(key)
for key in d:
    print(key,d[key])

 

 

4、元素的添加

#字典元素的添加
s = {
    'http':80,
    'ftp':21,
    'ssh':22

}
print(s)

#增加一个元素
#如果key值存在,则跟新key值对应的value
#如果key值不存在,则添加对应的k-v
s['http'] = 443
print(s)
s['ftp'] = 23
print(s)





增加多个元素
s = {
    'http':80,
    'ftp':21,
    'ssh':22

}

s1 = {
    'tomcat':8080,
    'mysql':3306
}
s.update(s1)                        ##合并两个字典
print(s)

s.update(flask=9000,dns=53)         ##添加两个k-v值
print(s)


#如果key的值存在:不做修改
#如果key的值不存在:则添加对应的k-v
s = {
    'http':80,
    'ftp':21,
    'ssh':22

}
s.setdefault('http',9090)
print(s)
s.setdefault('abc',4567)
print(s)

 

 

5、字典元素的删除

#字典内容的删除
s = {
    'http':80,
    'ftp':21,
    'ssh':22
}
#pop删除指定的key对应的value值
#如果key存在,删除 并且返回所对应的value值(可以用变量回收)
#如果不存在直接报错
a = s.pop('http')           ##只能用pop删除 不能用del
print(a)
print(s)

#清空字典的内容
s.clear()
print(s)

 

 

 

6、 值的查看


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

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

"""
key不存在 不报错 默认返回None
key存在,就返回本来的value值
"""
print(service.get('http',8080))

 

字典练习

练习1
# 数字重复统计:
    1). 随机生成1000个整数;
    2). 数字的范围[20, 100],
    3). 升序输出所有不同的数字及其每个数字重复的次数;
"""
import random
all_num = []
for item in range(1000):
    all_num.append(random.randint(20,100))
sorted_num = sorted(all_num)
num_dict = {}
for num in sorted_num:
    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)

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

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

print(word_dict)

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

# 3. 输出卡号和密码信息, 格式如下:
卡号                  密码
6102009001              000000

"""
# print({}.fromkeys({'1','2'},'000000'))


card_ids = []
# 生成100个卡号
for i in range(100):
    # %.3d:代表整数占3位
    s = '6102009%.3d' %(i+1)
    # 将每次生成的卡号都加入到列表中
    card_ids.append(s)

card_ids_dict = {}.fromkeys(card_ids,'redhat')
print(card_ids_dict)
print('卡号\t\t\t\t\t密码')
for key in card_ids_dict:
    print('%s\t\t\t%s' %(key,card_ids_dict[key]))

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值