【Python基础】10.1 字典

目录

 

       字典是另一种可变容器模型,且可存储任意类型对象,如其他容器模型。可以理解为C++中的map,但是比map强大

字典由键和对应值成对组成。每个键与值用冒号隔开(:),每对用逗号分割,整体放在花括号中({})。

键必须独一无二,但值则不必。

值可以取任何数据类型,但必须是不可变的,如字符串,数或元组。

 

一、字典的定义

1、空字典的定义

2、字典 key-value 键值对

3、工厂函数定义

4、字典的嵌套

二、字典的特性(成员操作符,for循环,遍历字典)

1、成员操作符

2、for循环,用来遍历字典

三、字典元素的增加

1、service = {    'http':80,    'ftp':23,    'ssh':22}增加一个元素,直接给key赋值

2、update  添加字典到初始字典中

3、setdefault()

四、字典元素的删除

五、字典元素的查看

查看字典中所有的key值

查看字典中所有的value值

查看字典中的key-value

get()取值操作的默认值设置

六、字典练习


       字典是另一种可变容器模型,且可存储任意类型对象,如其他容器模型。可以理解为C++中的map,但是比map强大。

字典由键和对应值成对组成。每个键与值用冒号隔开(:),每对用逗号分割,整体放在花括号中({})。

键必须独一无二,但值则不必。

值可以取任何数据类型,但必须是不可变的,如字符串,数或元组。

 

一、字典的定义

1、空字典的定义

>>> s={}
>>> print(s,type(s))
({}, <type 'dict'>)

2、字典 key-value 键值对

s={
    '1':[1,2],
    '2':[3,4]
}
print(s)

输出:
{'1': [1, 2], '2': [3, 4]}

3、工厂函数定义

d=dict()
print(d,type(d)

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

输出:
{} <class 'dict'>
{'a': 1, 'b': 2} <class 'dict'>


4、字典的嵌套

student = {
    123:{
        "name":'tom',
        'age':18,
        'score':99
    },
    456:{
        'name':'lily',
        'age':19,
        'score':98
    }
}
print(student[123]['score'])

输出:

99

二、字典的特性(成员操作符,for循环,遍历字典)

字典不支持切片。

都是针对key值的

d = {
    '1':'a',
    '2':'b'

}

1、成员操作符

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

2、for循环,用来遍历字典

for key in a:
    print(key,a[key])
输出:
1 hello
2 world

三、字典元素的增加

1、service = {
    'http':80,
    'ftp':23,
    'ssh':22
}
增加一个元素,直接给key赋值

如果key值存在,则更新对应的value值
如果key值不存在,则添加对应的值

service['https'] = 443
 

2、update  添加字典到初始字典中

service_backup ={
    'tomcat':8080,
    'mysql':3306

}

service.update(service_backup)
print(service)

如果key值存在,更新对应的value值
如果key值不存在,则添加对应的值

3、setdefault()

赋初始默认值,不能代替更新值操作
 

service = {
    'http':80,
    'ftp':23,
    'ssh':22
}
service.setdefault('yyz',93290)
service.setdefault('ssh',123)
print(service)

输出:
{'http': 80, 'ftp': 23, 'ssh': 22, 'yyz': 93290}

 

四、字典元素的删除

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

pop:删除指定key对应的value值

      item = service.pop('https')

删除最后一个key-value
a = service.popitem()
print(a)
print(service)

清空字典内容
service.clear()
print(service)

五、字典元素的查看

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

查看字典中所有的key值

print(service.keys())

查看字典中所有的value值

print(service.values())

查看字典中的key-value

print(service.items())

get()取值操作的默认值设置

get方法获取key值对应的value值
如果key值存在,返回对应的value值
如果key值不存在,默认返回None,如果需要指定返回值,传值即可

   注意:get()只是做了取值操作,没有给字典赋值,详细见下例:

service = {
    'http':80,
    'ftp':23,
    'ssh':22
}
print(service.get('hello',1223))
print(service)

输出:
1223
{'http': 80, 'ftp': 23, 'ssh': 22}

六、字典练习

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

import random
all_num = []

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

# 对生成好的1000个数进行排序,然后添加到字典中
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_li = s.split()

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:随机生成100个卡号;
卡号以6102009开头, 后面3位依次是 (001, 002, 003, 100),
生成关于银行卡号的字典, 默认每个卡号的初始密码为"redhat";

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

# print({}.fromkeys({'1','2'},'100000'))
card_ids = []

# 身成100个卡号
for i in range(100):
    # %.3d:代表整数占位
    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、付费专栏及课程。

余额充值