Python 字典 --笔记

目录

1. 添加键值对

2. 修改字典中的值

3. 删除键值对

4. 遍历字典

4.1 遍历字典的所键

4.2 遍历所有的键值对

4.3 顺序遍历字典中的所有键、值

5. 嵌套

在Python中,字典是一系列键值对,每个键都与一个值相关联,可以使用键来访问与之相关联的值。与键相关联的值可以是数字、字符串、列表乃至字典。

a = ["dsf","fd",4,2]                            #列表
s = {'week':'sunday','num':3,'chinese':'发送'}   #字典
s1 = (324,2,'few',"分为")                        #元组
alien = {'color':'green','pos':3,'list':a,'alin':s,'yz':s1}
print(alien)
{'color': 'green', 'pos': 3, 'list': {'fd', 2, 4, 'dsf'}, 'alin': {'week': 'sunday', 'num': 3, 'chinese': '发送'}, 'yz': (324, 2, 'few', '分为')}

1. 添加键值对

字典是一种动态结构,可随时在其中添加键值对。要添加键值对,可依次指定字典名、用方括号括起的键和相关联的值

alien['x_pos'] = 312
alien['y_pos'] = 32
print(alien)
{'color': 'red', 'pos': 3, 'list': ['dsf', 'gr', 'fd', 4, 2], 'alin': {'week': 'sunday', 'num': 3, 'chinese': '发送'}, 'yz': (324, 2, 'few', '分为'), 'x_pos': 312, 'y_pos': 32}

2. 修改字典中的值

可依次指定字典名和放在方括号内的键,获取与键相关联的值

alien['color'] = 'red'
print(alien['color'])

a.insert(1,'gr')
alien['list'] = a
print(alien['list'])

alien['x_pos'] = 312
alien['y_pos'] = 32
print(alien)
alien['pos'] = alien['pos'] + alien['x_pos'] + alien['y_pos']
print(alien)
red
['dsf', 'gr', 'fd', 4, 2]
{'color': 'red', 'pos': 3, 'list': ['dsf', 'gr', 'fd', 4, 2], 'alin': {'week': 'sunday', 'num': 3, 'chinese': '发送'}, 'yz': (324, 2, 'few', '分为'), 'x_pos': 312, 'y_pos': 32}
{'color': 'red', 'pos': 347, 'list': ['dsf', 'gr', 'fd', 4, 2], 'alin': {'week': 'sunday', 'num': 3, 'chinese': '发送'}, 'yz': (324, 2, 'few', '分为'), 'x_pos': 312, 'y_pos': 32}

3. 删除键值对

del        语句可以彻底删除键值对,使用时必须指定字典名和要删除的键

del alien['alin']
print(alien)
{'color': 'red', 'pos': 347, 'list': ['dsf', 'gr', 'fd', 4, 2], 'yz': (324, 2, 'few', '分为'), 'x_pos': 312, 'y_pos': 32}

4. 遍历字典

4.1 遍历字典的所键

在不需要打印字典的值时,可以使用 keys() 函数,也可以不用,我暂时不知道两者的区别

for name in alien:
    print(name.title())

for name in alien.keys():
    print(name.title())
Color
Pos
List
Yz
X_Pos
Y_Pos

4.2 遍历所有的键值对

for key,val in alien.items():    #必须包括方法 items(),它返回一个键值对列表
    print(key.title(),val)
Color red
Pos 347
List ['dsf', 'gr', 'fd', 4, 2]
Yz (324, 2, 'few', '分为')
X_Pos 312
Y_Pos 32

一个小例子

foods = {'main':'beef','fruit':'apple','lingsi':'latiao','grade':9}
my_love = ["fruit","lingsi"]
for name in my_love:
    print(name.title())
    if name in foods:
        print("my love is " + name.title() + ':' + foods[name].title())
Fruit
my love is Fruit:Apple
Lingsi
my love is Lingsi:Latiao

4.3 顺序遍历字典中的所有键、值

.sorted()        获取特定顺序排列的键列列表的副本

.keys()           获取键

.values()        取值

.set()              对重复元素的列表,去重,剩下列表中的元素都是独一无二的

foods = {'main':'beef','fruit':'apple','grade':'9','fd':'beef','grade':'12'}
print(sorted(foods.keys()))         #临时排序,并不改变字典原来的顺序
print(foods)                        #字典中键只有唯一一个,值可以重复
print(foods.keys())                 #返回一个键列表
food_key = sorted(foods.keys())     #将排列后的键值翻入列表
print(food_key)
print("\n")

print(sorted(foods.values()))       #临时排序,并不改变字典原来的顺序
print(foods)
print(foods.values())               #返回一个值列表
food_val = sorted(foods.values())   #永久排序,将排列后的键值加入列表
print(food_val)
print(set(food_val))                # set() 去重
['fd', 'fruit', 'grade', 'main']
{'main': 'beef', 'fruit': 'apple', 'grade': '12', 'fd': 'beef'}
dict_keys(['main', 'fruit', 'grade', 'fd'])
['fd', 'fruit', 'grade', 'main']


['12', 'apple', 'beef', 'beef']
{'main': 'beef', 'fruit': 'apple', 'grade': '12', 'fd': 'beef'}
dict_values(['beef', 'apple', '12', 'beef'])
['12', 'apple', 'beef', 'beef']
{'beef', '12', 'apple'}

5. 嵌套

将字典存储在列表中,或将列表存储在字典中称为嵌套

#列表嵌套字典
l1 = []
# 在列表中嵌套5个字典
for num in range(5):
    aline = {'food':'beef','color':'red','pos':'34'}
    l1.append(aline)
# 输出前2个的列表
for l in l1[:2]:
    if l['color'] == 'red':
        l['color'] = 'green'
        l['pos'] = '21'
    elif l['color'] == 'green' :
        l['color'] = 'yellow'
        l['food'] = 'rice'
    else:
        l['color'] = 'blue'
    print(l)
    print('\n')

print("sum = ",len(l1))
{'food': 'beef', 'color': 'green', 'pos': '21'}


{'food': 'beef', 'color': 'green', 'pos': '21'}


sum =  5
#字典嵌套列表
a = ["dsf","fd",'4','3']      #列表
alien = {'color':'green',
         'pos':3,
         'list':a,
         }
for val in alien['list']:
    print( val + "\t")
for key,val in alien.items():
    print(key.title(),val)
dsf	
fd	
4	
3	
Color green
Pos 3
List ['dsf', 'fd', '4', '3']
#在字典中嵌套字典
user = {
    'Lasco':{
        'ID':'12343',
        'adr':'fy',
    },
    'Ricky':{
        'ID':'12342',
        'adr':'ji',
    },
    'Nick':{
        'ID':'12341',
        'adr':'es',
    },
}
for name,info in user.items():
    print(name)
    f_info = info['ID'] +' ' + info['adr']
    print(name + ':' + f_info)
Lasco
Lasco:12343 fy
Ricky
Ricky:12342 ji
Nick
Nick:12341 es

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值