青少年python大赛知识点学习5--字典

        python中的字典,与我们使用的新华字典有点像。索引与对象,新华字典存的是每个字的相关内容,python中的字典是一个容器类型的数据结构,通过key进行索引。

1.什么是字典

  1. 字典是python内置的重要数据之一,与列表一样是一个可变序列。
  2. 以键值对(key:value)的方式存储数据,字典是一个无序的序列,列表是一个有序序列。
  3. 用{}来定义字典.
  4. 字典是Python语言中唯一的映射类型。字典对象是可变的,它是一个容器类型,能存储任意个数的Python对象,其中也可包括其他容器类型。

2.字典的创建

        字典中的key是非常关健的数据,而且在程序中需要通过key来调用访问value值,因此字典中的key不能重复。两种创建方法:

1.使用{}创建

创建时,{}中应包含多个key_value对,key与value 之间用英文冒号隔开,多个key-value对以英文逗号隔开。小学生巧记:字典为“逗大猫”({,:})。

# -*- coding: utf-8 -*-
# @Time : 2023年11月05日 10时26分
# @Email : cf200908@126.com
# @Author : Chenfengyi
# @File : 字典.py
# @notice :


treeword = {}  # 空字典
print(treeword)
twoword = {'桌子': 'desk', '书': 'book'}  # key与value均为字符串
print(twoword)
dict3 = {(1, 5): '合格', (1, 3): '优秀', 10: '李明'}  # key为元组,整数,value均为字符串,
print(dict3)
dict3 = {2: '合格', (1, 3): 500, 10: '李明'}
print(dict3)

2.使用dict()函数创建

使用dict()函数创建字典时,可以传入多个元组或列表参数作为key_value对。每个列表或元组将作为key_value对,所以只能包含两个元素,如下:

word=((1, 3), (1, 3))
d1=dict(word)
print(d1)
word=((1, 3), (5, 3))
d1=dict(word)
print(d1)
word=[(1, 'good'), (1, 'book')]
d1=dict(word)
print(d1)
word=[('好', 'good'), ('书', 'book')]
d1=dict(word)
print(d1)
dictempty=dict()
print(dictempty)

结果:
{1: 3}
{1: 3, 5: 3}
{1: 'book'}
{'好': 'good', '书': 'book'}
{}

3.字典的基本用法

注意,字典包含多个k-v对,而key是字典的关健数据,所以对字典的操作都是基于key的

通过key访问值

通过key添加值

cj={'语文':85,'数学':105,'英语':98}
print(cj)
print(cj['英语'])
print(cj['美术'])

Traceback (most recent call last):
  File "F:/le_python/csdn/字典增删改查.py", line 11, in <module>
    print(cj['美术'])
KeyError: '美术'
{'语文': 85, '数学': 105, '英语': 98}
98

通过key修改值

通过key删除值

cj={'语文':85,'数学':105,'英语':98}
print(cj)
print(cj['英语'])
if '美术' not in cj:
    cj['美术'] = 99
    print('没用美术成绩')
else:
    print(cj['美术'])
print(cj)

del cj['美术']
print(cj)

结果:
{'语文': 85, '数学': 105, '英语': 98}
98
没用美术成绩
{'语文': 85, '数学': 105, '英语': 98, '美术': 99}
{'语文': 85, '数学': 105, '英语': 98}

进程已结束,退出代码 0

通过key确定key-value对是否存在

cj={'语文':85,'数学':105,'英语':98}
print(cj)
print(cj['英语'])
if '美术' not in cj:
    print('没用美术成绩')
else:
    print(cj['美术'])


结果:
{'语文': 85, '数学': 105, '英语': 98}
98
没用美术成绩
    字典相当于索引是任意不可变的类型列表,而列表相当于key只能是整数的字典,因此如果程序中要使用的字典的key都是整数类型,则可以考虑能否换成列表。

     列表不充许对不存在的索引赋值,而字典可以。

4.字典的常用方法

print(dir({}))
print(dir(dict))
lb=dir({})
b=[]
for a in lb:
    if '_' not in a:
        b.append(a)        
print(b)
结果:
['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
['clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']

常用方法:

'clear':清空字典

 'copy':复制

 'fromkeys':使用多个给定的多个key创建字典,key对应的寄默认值为none也可指定默认值

cj=dict.fromkeys(['数学','语文'])
print(cj)
cj=dict.fromkeys(('数学','语文'))
print(cj)
cj=dict.fromkeys(('数学','语文'),80)
print(cj)

{'数学': None, '语文': None}
{'数学': None, '语文': None}
{'数学': 80, '语文': 80}

 'items'

 'keys',

'values'

cj=dict.fromkeys(['数学','语文'])
print(cj)
cj=dict.fromkeys(('数学','语文'))
print(cj)
cj=dict.fromkeys(('数学','语文'),80)
print(cj)

print('items',cj.items)
print('keys',cj.keys)
print('values',cj.values)


print('items',list(cj.items()))
print('keys',list(cj.keys()))
print('values',list(cj.values()))

结果:
{'数学': None, '语文': None}
{'数学': None, '语文': None}
{'数学': 80, '语文': 80}
items <built-in method items of dict object at 0x02169180>
keys <built-in method keys of dict object at 0x02169180>
values <built-in method values of dict object at 0x02169180>
items [('数学', 80), ('语文', 80)]
keys ['数学', '语文']
values [80, 80]

 'get':根据key获得value值,相当于[]语法的增强版,使用[]获得不存在的key时会引发keyerro错误,get()会返回none,不引起错误。

'pop',

'popitem',

'setdefault',

'update'

有空自已试试。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

信息化未来

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值