Python基础——字典

字典

概念:一系列键—值对组成,可嵌套,类似结构体

表示方法:花括号{“A”:1,B:“2”}

基础操作: 可以把键简单理解为一种下标

  1. 访问值:字典 [ 键 ]
  2. 修改值:字典 [ 键 ] = 值
  3. 添加键值对:字典 [ 新键 ] = 值
  4. 删除键值对:del 字典[键] 永久删除
dict = {
    'a':"C语言",
    'b':"python",
    'c':"python",
}
print(dict['a'])     #访问键为’a'的值
dict['b'] = "C++"    #将键为'b'的值设置为”C++“
dict['d'] = "Java"   #新增键值对
del dict['a']        #删除键为'a'的键值对

print(dict)

输出:
C语言
{'b': 'C++', 'c': 'python', 'd': 'Java'}

遍历:

  1. 所有键:字典.keys() 返回包含所有键的列表
  2. 所有值:字典.values() 返回包含所有值的列表
  3. 所有键值对:字典.items() 返回包含所有键值对的列表
dict = {              #定义字典
    'a':"C语言",
    'b':"python",
    'c':"python",
}

print(dict.keys())           #返回键集合
print(dict.items())          #返回值集合

for key in dict.keys():      #输出键集合
    print(key, end='')
print("")

for value in dict.values():  #输出值集合
    print(value, end='')
print("")

for k,v in dict.items():      #一块遍历键值对,k为键,v为值
    print("%s喜欢%s" %(k,v))

输出:
dict_keys(['a', 'b', 'c'])
dict_items([('a', 'C语言'), ('b', 'python'), ('c', 'python')])
abc
C语言pythonpython
a喜欢C语言
b喜欢python
c喜欢python

列表去重:set(列表)

dict = {              #定义字典
    'a':"C语言",
    'b':"python",
    'c':"python",
}

for value in set(dict.values()):  #输出值集合,set集合是独一无二的
    print(value)

输出:
python
C语言

嵌套

1. 列表中嵌套字典:字典列表

用法:[ 字典名1,字典名2,……]

应用:网站每个用户是一个字典,将所有用户字典存入user用户列表中,方便遍历统一处理信息

#创建一个存储外星人的空列表
aiens = []

#创建30个外星人字典,存入列表
for aien_number in range(30):
    new_aien = {"color":"greeen", "speed":"slow"}
    aiens.append(new_aien)

#列表中取出前5个外星人字典,并输出
for aien in aiens[:5]:
    print(aien)

#访问元素字典中的值,前一个为列表索引,后面为键
for num in range(5):          
    print(aiens[num]["color"])

输出:
{'color': 'greeen', 'speed': 'slow'}
{'color': 'greeen', 'speed': 'slow'}
{'color': 'greeen', 'speed': 'slow'}
{'color': 'greeen', 'speed': 'slow'}
{'color': 'greeen', 'speed': 'slow'}
greeen
greeen
greeen
greeen
greeen

2. 字典中嵌套列表:列表字典

用法:{键:值,键:列表,……}

应用:描述3位同学喜欢的编程语言,一个同学可能喜欢好几种,字典的值(编程语言)是列表

fav_lans = {
    "小明": ["python"],
    "小华": ["C++", "python"],
}

for keys,values in fav_lans.items():
    print(keys)                             #print("%s,%s" %(keys,values))
    for value in values:                    #小明, ['python']
        print(value)                        #小华, ['C++', 'python']

#把问题想象简单点,keys即字符串,values即列表
#建议在列表字典中,所有的值均写作列表的形式

print(fav_lans["小华][0])       #输出:C++

输出:
小明
python
小华
C++
python

3. 列表中嵌套列表:[ [“a”,“b”], [“c”] ]

应用:类似二维数组,索引访问

liebiao = [["1","2"],[3,4,5],6.5,7]

for value in liebiao[1]:          #输出第二个列表[3,4,5],用索引访问大列表中元素
    print(value, end='')
print()

for num in liebiao:               #输出大列表中所有元素
    if isinstance(num,list):      #判断num是否为列表,是则for循环输出小列表内容,否则直接输出
        for value in num:
            print(value, end='')
    else:
        print(num, end='')
        
输出:
345
123456.57

4. 字典中嵌套字典:{ “a” : { xxx } ,“b” : { xxx } }

缺点:字典嵌套字典,代码很快复杂起来

users = {
    "小明":{
        "性别":"男",
        "爱好":"python"
    },
    "小红":{
        "性别":"女",
        "爱好":"C++"
    },
}
for user in users.values():    #返回小字典
    print(user["爱好"])        #根据键查值

输出:
python
C++
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值