python编程从零基础到项目实践第五章学习--字典

1、字典用{}表示字典的开始和结束,元素之间用 ,隔开 里面是key和value 中间用:分隔

字典值的唯一性

zidian={1:"bus",2:"bus",3:"car",3:"cs"}
print(zidian) {1: 'bus', 2: 'bus', 3: 'cs'}
print(len(zidian)) 3

如果两个key相同,取最右边的那个

2、字典的基本方法
clear 字典清空 copy 复制生成另一个字典 fromkeys 使用给定的键建立新的字典,每个键默认对应的值为None get 根据指定键,返回对应值,访问键不存在时,返回None
items 以元组数组的形式返回字典中的元素 keys 以可以浏览的类型列表形式返回字典中的值 pop 删除指定键的元素,并返回指定键对应的值 popitem 随机返回元素,并删除元素
setdefault 当字典中键不存在时,设置键值对;当存在键时,获取键对应值 update 利用一个字典更新另一个字典 values 以可以浏览的类似列表的形式返回字典中的值


3、字典元素的增加 和列表的区别,列表是[下标]=value 修改对应的元素 字典是[key]=value 加值
(1)[下标]=value

zidian[5]="benzi"
print(zidian)
{1: 'bus', 2: 'bus', 3: 'cs', 5: 'benzi'}

test=[1,2,3,4]
test[3]=5
print(test)
[1, 2, 3, 5]
(2)字典.setdefault(key,value)
zidian.setdefault(6,"bus")
print(zidian)
{1: 'bus', 2: 'bus', 3: 'cs', 5: 'benzi', 6: 'bus'}
如果只有(key)没有value 返回到的值是none
zidian.setdefault(7)
print(zidian)

{1: 'bus', 2: 'bus', 3: 'cs', 5: 'benzi', 6: 'bus', 7: None}

如果重复,则返回之前的值
zidian.setdefault(6,7)
print(zidian)
{1: 'bus', 2: 'bus', 3: 'cs', 5: 'benzi', 6: 'bus', 7: None}

4、字典值查找
(1)直接用key值找

print(zidian[1])
bus

(2)用get的方法
print(zidian.get(1))
bus
5、字典值修改
(1)直接用key进行修改
zidian[3]="buses"
print(zidian)

(2)字典.update({key,value}) 直接增加
zidian.update({8:"bmw"})
print(zidian)
{1: 'bus', 2: 'bus', 3: 'buses', 5: 'benzi', 6: 'bus', 7: None, 8: 'bmw'}

zidian.update({2:"bmw"})
print(zidian)
{1: 'bus', 2: 'bmw', 3: 'buses', 5: 'benzi', 6: 'bus', 7: None, 8: 'bmw'}    把值修改成bme

两个字典,把1个字典的值改到另一个上
zidian2={1:"casd",2:"abcd"}
zidian.update(zidian2)
print(zidian)
{1: 'casd', 2: 'abcd', 3: 'buses', 5: 'benzi', 6: 'bus', 7: None, 8: 'bmw'}

6、字典的删除 del(字典[key]) 字典.pop(key) 字典.popitem() 随机返回一个值键,并在字典中删除
del:
{1: 'bus', 2: 'bus', 3: 'buses', 5: 'benzi', 6: 'bus', 7: None, 8: 'bmw'}
del(zidian[1])
print(zidian)
{2: 'abcd', 3: 'buses', 5: 'benzi', 6: 'bus', 7: None, 8: 'bmw'}

pop:
{1: 'bus', 2: 'bus', 3: 'buses', 5: 'benzi', 6: 'bus', 7: None, 8: 'bmw'}
pl=zidian.pop(1)
print(pl)
print(zidian)

bus
{2: 'bus', 3: 'buses', 5: 'benzi', 6: 'bus', 7: None, 8: 'bmw'}

 

popitem:

{1: 'bus', 2: 'bus', 3: 'buses', 5: 'benzi', 6: 'bus', 7: None, 8: 'bmw'}

k1,v1=zidian.popitem()
print(k1,v1)
print(zidian)

1 bus
{2: 'bus', 3: 'buses', 5: 'benzi', 6: 'bus', 7: None, 8: 'bmw'}

 

7、字典的遍历

 (1)遍历所有值对:

zidian={1:"bus",2:"bus",3:"car",3:"cs"}
print(zidian.items()) dict_items([(1, 'bus'), (2, 'bus'), (3, 'cs')])
for i in zidian.items():
print(i)

(1, 'bus')
(2, 'bus')
(3, 'cs')

(2)遍历所有键

 

for z in zidian.keys():
print(z)

1
2
3

for x in zidian:
print(x)

1
2
3

(3)遍历所有值

zidian={1:"bus",2:"bus",3:"car",3:"cs"}
for x in zidian:
print(zidian[x]) 先查询所有key,然后根据查找输出value

bus
bus
cs

for y in zidian.values():
print(y)

bus
bus
cs

其他操作:in   clear   copy

in

zidian={1:"bus",2:"bus",3:"car",3:"cs"}
if "bus" in zidian.values():
print("cunzai")
else:
print(11111)

cunzai

clear() 清空
zidian={1:"bus",2:"bus",3:"car",3:"cs"}
zidian.clear()
print(zidian)

{}

copy()
zidian={1:"bus",2:"bus",3:"car",3:"cs"}

zidian2=zidian.copy()
print(zidian2) {1: 'bus', 2: 'bus', 3: 'cs'}
zidian3=zidian
print(zidian3) {1: 'bus', 2: 'bus', 3: 'cs'}
zidian[2]="buses"
print(zidian) {1: 'bus', 2: 'buses', 3: 'cs'}
print(zidian2) {1: 'bus', 2: 'bus', 3: 'cs'}
print(zidian3) {1: 'bus', 2: 'buses', 3: 'cs'}

使用=复制,原值改变=的就改变 使用copy,没影响

8、字典嵌套
zidian={1:"bus",2:"bus",3:"car",3:"cs"}
zidian2={9:"aaa",8:"bbb"}
liebiao=[1,2,3]
hhh={1:zidian,2:zidian2,3:liebiao}
print(hhh) {1: {1: 'bus', 2: 'bus', 3: 'cs'}, 2: {8: 'bbb', 9: 'aaa'}, 3: [1, 2, 3]}
xxx=[zidian,zidian2,liebiao]
print(xxx)

[{1: 'bus', 2: 'bus', 3: 'cs'}, {8: 'bbb', 9: 'aaa'}, [1, 2, 3]]








 

posted on 2020-07-18 00:27  刘阿童木  阅读(142)  评论(0编辑  收藏  举报

导航