Python字典

字典的定义
字典(Dictionary)

字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,
整个字典包括在花括号 {} 中

字典: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'])

字典的特性

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

字典不支持切片

成员操作符(针对key)

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

遍历字典

字典的增加

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

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

添加多个key-value值

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

模拟 Linux用户登陆

import time

global name

user = {
    'kiosk':'redhat'
}
def login():
    global name
    name = input('Username:')
    pswd = input('Password:')
    if name not in user:
        return False
    return user[name] == pswd
while(not login()):
    time.sleep(3) #暂停3s
    print('!!!!!')
print(name + '@foundation0 ~')

字典的删除

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

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

pop删除
popitem删除最后一个key-value值

清空字典内容

字典的查看

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

查看字典的key值
查看字典的value值
查看字典的key-value值

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

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

数字重复统计:

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

import random
all_num = []

for item in range(1000):
    all_num.append(random.randint(20,100))

对生成好的1000个数进行排序,然后加到字典中

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)

重复的单词: 此处认为单词之间以空格为分隔符, 并且不包含,和.;
# 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)

1. 随机生成100个卡号;

卡号以6102009开头, 后面3位依次是 (001, 002, 003, 100),

2. 生成关于银行卡号的字典, 默认每个卡号的初始密码为"redhat";

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

卡号                  密码
6102009001              000000
"""
"""
fromkeys第一个参数可以是 list/tulpe/str/set
将第一个参数的元素作为字典的key值
并且所有的key的value值都是一致的

存储所有卡号列表

card_ids = []

生成100个卡号

for i in range(100):
    # %.3d代表:这个整型数占3位 eg:1--->001
    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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值