Python基础笔记02——关于字典

本文深入讲解Python字典的创建、操作、遍历等基本功能,包括键值对的添加、修改、删除,以及如何通过键获取值。同时,探讨了字典在存储列表和字典中的应用,展示了字典在数据管理和复杂数据结构中的灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

by 《Python编程从入门到实践》

二、关于字典

(12)字典的基本操作
包括创建、添加、访问、修改、删除等等

num = {}
num[1] = 'one'
num[2] = 'two'
num[3] = 'three'
num[4] = 'four'
num[5] = 'five'
print(num)
print(num[3])
num['a'] = 'after'
num['b'] = 'boy'
num['c'] = 'cat'
num['d'] = 'dog'
num['e'] = 'egg'
print(num)
print(num['c'])

运行结果
{1: ‘one’, 2: ‘two’, 3: ‘three’, 4: ‘four’, 5: ‘five’}
three
{1: ‘one’, 2: ‘two’, 3: ‘three’, 4: ‘four’, 5: ‘five’, ‘a’: ‘after’, ‘b’: ‘boy’, ‘c’: ‘cat’, ‘d’: ‘dog’, ‘e’: ‘egg’}
cat

有的时候键-值的排列顺序与添加顺序不同,Python不关心键-值对应的添加顺序,而只关心键和值之间的关联关系。
书上是这样写的,并且以x_position和y_position两个变量添加为例(P83)。实际运行中未发现——见上例。

#继续使用上面的字典num
print('原来的字典:',end='')
print(num)
num['a'] = 'among'
num['b'] = 'basketball'
num['c'] = 'clean'
del num['d']
del num['e']
del num[1]
del num[2]
del num[3]
del num[4]
del num[5]
print('新的字典:',end='')
print(num)

运行结果
原来的字典:{1: ‘one’, 2: ‘two’, 3: ‘three’, 4: ‘four’, 5: ‘five’, ‘a’: ‘after’, ‘b’: ‘boy’, ‘c’: ‘cat’, ‘d’: ‘dog’, ‘e’: ‘egg’}
新的字典:{‘a’: ‘among’, ‘b’: ‘basketball’, ‘c’: ‘clean’}


(13)字典的遍历
遍历字典所有信息、遍历键、遍历值

#先声明一个字典
love_language = {
    'allen':'python',
    'bob':'c',
    'clair':'java',
    'david':'python',
    'fros':'c++'
    }
#遍历字典,key-value这两个变量可以随意命名,用以储存.items()方法返回的键-值对列表
for key, value in love_language.items():
    print("\nKey: " + key)
    print("Value: " + value)

运行结果
Key: allen
Value: python

Key: bob
Value: c

Key: clair
Value: java

Key: david
Value: python

Key: fros
Value: c++

Python 不关心键-值对的存储顺序,而只跟踪键和值之间的关联关系。
输出的顺序可能与存储顺序不同。

for name, language in love_language.items():
	print(name.title() + "'s favorite language is " + language.title() +".")

遍历所有键和值

#遍历键
for name in love_language.keys():
	print(name.title())
	
#遍历值
for language in love_language.values():
	print(language.title())

(1)遍历字典时,会默认遍历所有的键,因此如果将上述遍历键的代码替换为 for name in love_language: (省略了.keys())输出结果也将不变。但是显示地使用方法keys()会让代码更容易理解。
(2)方法keys()并非只能用于遍历;实际上它返回一个列表,其中包含字典中的所有键。同理,方法values返回一个值列表。
(3)按顺序遍历键、剔除值的重复见下:

#如果想按顺序遍历字典中的所有键
for name in sorted(love_language.keys()):

#如果想剔除值列表中的重复值,可以使用集合set——每个元素都是独一无二的
for language in set(love_language.values()):

其它的一些代码举例:

love_language = {
    'allen':'python',
    'bob':'c',
    'clair':'java',
    'david':'python',
    'fros':'c++'
    }

friends = ['allen','clair']
for name in love_language.keys():
    print(name.title())

    if name in friends:
        print("hello my friends! You love " + love_language[name].title() +".")

运行结果
Allen
Hello my friends! You love Python.
Bob
Clair
Hello my friends! You love Java.
David
Fros

love_language = {
    'allen':'python',
    'bob':'c',
    'clair':'java',
    'david':'python',
    'fros':'c++'
    }

name = 'jack'
if name not in love_language.keys():
    print(name.title() + ", I don't konw what language you love!")

运行结果
Jack, I don’t konw what language you love!


(14)字典列表
创建一个包含三个字典的列表

alien_0 = {'color':'red','points':5}
alien_1 = {'color':'green','points':10}
alien_2 = {'color':'red','points':15}

aliens = [alien_0,alien_1,alien_2]
for alien in aliens:
	print(alien)
	print(alien['color'])

#也可以先创建空列表再添加字典
cats = []
for i in range(10):
	new_cat = {'color':'orange','speed':'fast'}
	cats.append(new_cat)

for cat in cats:
	print(cat)

(15)在字典中存储列表

#在字典中存储列表
love_language = {
    'allen':['python','ruby'],
    'bob':['c'],
    'phil':['python','java','go']
    }

for name,languages in love_language.items():
    if len(languages) > 1:
        print(name.title() + " love many languages: ")
        for language in languages:
            print("\t" + language.title())
        print()
    else:
        print(name.title() + " love only one language: " + languages[0].title())
        print()

运行结果
Allen love many languages:
  Python
  Ruby

Bob love only one language: C

Phil love many languages:
  Python
  Java
  Go


(16)在字典中存储字典
可在字典中嵌套字典,例如如果有多个网站用户,每个都有独特的用户名,可在字典中将用户名作为键,然后将每位用户的信息存储在一个字典中,并将该字典作为与用户名相关联的值。

#在字典中存储字典
users = {
    'allen':{
        'first':'allen',
        'last':'walker',
        'location':'princeton'
        },
    'bob':{
        'first':'bob',
        'last':'winster',
        'location':'paris'
        }
    }

for name,user_info in users.items():
    print("username: " + name.title())
    print("full name: " + user_info['first'].title() +' '+ user_info['last'].title())
    print("location: " + user_info['location'].title())
    print()

运行结果
username: Allen
full name: Allen Walker
location: Princeton

username: Bob
full name: Bob Winster
location: Paris

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值