python中的字典介绍

字典是一个无序的数据集合,使用print输出字典时,通常输出的顺序和定义的顺序不一致

1.集合的定义

如何定义一个空集合

s = {}
print(type(s))

字典的结构是key-value键值对,value可以是任意数据类型

s = {
    'linux':[100,99,88],
    'westos':[190,564,645]
}                                      ##如图所示,:前是key值,:后是value值

print(s)
print(type(s))

工厂函数,就是dict()

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

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

字典可以嵌套

students = {
    '03113009':{
        'name':'tom',
        'age':18,
        'score':80
    },
    '03113010':{
        'name': 'laoli',
        'age': 19,
        'score':30
    }
}

print(students['03113010']['name'])          ##显示student数组中03113010数组的name的value值

如果所有的key和value值是一样的,可以这样定义

print({}.fromkeys({'1','2'},'03113009'))

2.字典的特性

1)字典不支持索引,不支持切片,字典的重复和连接无意义,因为字典的key值唯一

2)成员操作符

d = {
    '1':'a',
    '2':'b'
}                                    ##举例子的字典
print('1' in d)
print('1' not in d)

3)for循环,默认遍历字典的key值

d = {
    '1':'a',
    '2':'b'
}                                    ##举例子的字典
for key in d:
    print(key)

4)遍历字典

d = {
    '1':'a',
    '2':'b'
}                                    ##举例子的字典
for key in d:
    print(key,d[key])

for key,value in d.items():
    print(key,value)

3.字典的增加

字典增加的规则为,如果key值存在,则更新value值,如果key值不存在,则新增key值和value值,例如下面例子

service = {
    'http':80,
    'ftp':21,
    'ssh':22
}
service['mysql'] = 3306                ##没有mysql这个key值,所以新增mysql这对k-v值
print(service)        
service['http'] = 443
print(service)                         ##有http这个key值,所以将http的value更新为443

 

添加多个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值

service.setdefault('http',9090)
print(service)
service.setdefault('oracle',44575)
print(service)

4.字典的删除

1)del删除

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

del service['http']
print(service)

2.pop删除

service = {
    'http':80,
    'ftp':21,
    'ssh':22
}
item = service.pop('http')            ##pop删除指定key的key-value
print(item)                           ##如果key存在,删除,并且返回删除key对应的value
print(service)                        ##如果key不存在,报错

popitem删除最后一个key-value值

service = {
    'http':80,
    'ftp':21,
    'ssh':22
}
item = service.popitem()
print('删除的key-value对是:',item)
print(service)

清空字典内容

service.clear()
print(service)

输出是一个空集合

3.字典的查看

这里举例的字典依旧是之前的字典

查看字典的key值

print(service.keys())

查看字典的value值

print(service.values())

查看key的value值,若不存在,则报错

print(service['https'])

查看key的value值

key不存在,默认返回none

key不存在,有default,则返回default

print(service.get('https',443))
print(service.get('https'))

遍历

for k,v in service.items():
    print(k,'--->',v)

判断是否在字典中

if 'https' in service:
    print(service['https'])
else:
    print('key not exist')

get方法获取指定key对应的value值

如果key存在,则返回value值

如果key不存在,默认返回none,如果需要指定返回值,传值即可,如下

print(service.get('https','ket not exist'))

4.字典练习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)

5.字典练习2

重复的单词: 此处认为单词之间以空格为分隔符, 并且不包含,和.;
    # 1. 用户输入一句英文句子;
    # 2. 打印出每个单词及其重复的次数;
 "hello java hello python"
# hello 2
# java 1
# python 1

答案日后写~

猜你喜欢

转载自blog.csdn.net/weixin_40543283/article/details/86672001
今日推荐