马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
本帖最后由 15271953841 于 2024-2-24 07:13 编辑
Python 3.12.1 (tags/v3.12.1:2305ca5, Dec 7 2023, 22:03:25) [MSC v.1937 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
字典一出手,我们就知道有没有
在映射关系上,列表搞不过字典。
x={"吕布","关羽"}
type(x)
<class 'set'>
y={"吕布":"飞将","关羽":"云长"} (建:值,key:value,冒号左边为字典的键,右边为字典的值)
type(y)
<class 'dict'>
y["吕布"]
'飞将'
y["刘备"]="玄德"
y
{'吕布': '飞将', '关羽': '云长', '刘备': '玄德'}
创建字典的六种方法:
a={'吕布': '飞将', '关羽': '云长', '刘备': '玄德'}
b=dict(吕布='飞将',关羽='云长',刘备='玄德') (第二种方法要求键不能加引号,学习函数时就无师自通了)
c=dict([('吕布','飞将'),('关羽','云长'),('刘备','玄德')])
d=dict({'吕布':'飞将','关羽':'云长','刘备':'玄德'}) (第四种方法就是第一种方法直接写入dict()函数中)
e=dict({'吕布':'飞将','关羽':'云长'},刘备='玄德') (第五种方法是第一和第二的混合,注意第二种方法的键不能加引号)
f=dict(zip(["吕布","关羽","刘备"],["飞将","云长","玄德"])) (zip就像拉链一样,把两个列表拉到一起,构成与第三种方法一样的形式)
a==b==c==d==e==f
True
a
{'吕布': '飞将', '关羽': '云长', '刘备': '玄德'}
b
{'吕布': '飞将', '关羽': '云长', '刘备': '玄德'}
c
{'吕布': '飞将', '关羽': '云长', '刘备': '玄德'}
d
{'吕布': '飞将', '关羽': '云长', '刘备': '玄德'}
e
{'吕布': '飞将', '关羽': '云长', '刘备': '玄德'}
f
{'吕布': '飞将', '关羽': '云长', '刘备': '玄德'}
字典的增、删、改、查
fromkeys(iterable[,values]) 创建一个新的字典,values只是给创建的字典的所有的键初始化一个值。
d=dict.fromkeys("FishC",250)
d
{'F': 250, 'i': 250, 's': 250, 'h': 250, 'C': 250}
d["F"]=70
d
{'F': 70, 'i': 250, 's': 250, 'h': 250, 'C': 250}
d["鱼"]=67 (如果找不到对应的键,就会增加一个新的键值对)
d
{'F': 70, 'i': 250, 's': 250, 'h': 250, 'C': 250, '鱼': 67}
序列与字典的另一个重大区别是:
在序列中,元素是可以重复的;而在字典中的像(键值对),一个键就对应一个值,并不会说存在重复的键,重复了,它就会用新的值去覆盖旧的值。
删 pop(key[,default])
d.pop("s")
250
d
{'F': 70, 'i': 250, 'h': 250, 'C': 250, '鱼': 67}
d.pop("狗") (pop()一个不存在的键,它就会抛出异常)
Traceback (most recent call last):
File "<pyshell#35>", line 1, in <module>
d.pop("狗")
KeyError: '狗'
d.pop("狗","没有")
'没有'
类似的popitem()函数,在Python3.7版本之前,它是随机删除一个键值对,3.7之后,它是删除最后一个键值对。
d.popitem()
('鱼', 67)
d
{'F': 70, 'i': 250, 'h': 250, 'C': 250}
del d["i"]
d
{'F': 70, 'h': 250, 'C': 250}
del d (干掉整个字典d)
d
Traceback (most recent call last):
File "<pyshell#42>", line 1, in <module>
d
NameError: name 'd' is not defined. Did you mean: 'id'?
d=dict.fromkeys("FishC",250)
d
{'F': 250, 'i': 250, 's': 250, 'h': 250, 'C': 250}
d.clear() (只清空字典d中的内容,用clear())
d
{} (d变量就变成了一个空字典)
|