python基础:五,字典

本文介绍了如何在Python中创建和操作字典,包括访问和修改字典中的值,添加键值对,删除键值对,以及遍历字典的所有键值对。还展示了如何使用get()方法安全访问字典值,并提供了字典嵌套和列表的示例,如创建和修改字典列表以及在字典中存储列表和字典。
摘要由CSDN通过智能技术生成
# 6.1 一个简单的字典

#外星人颜色{绿色} + 分数 (5)
alien_0 = {'color': 'gree',
          'points': 5  }

print(alien_0['color'])
print(alien_0['points'])  #列表访问key来访问元素值

# 6.2 使用字典

alien_0 = {'color': 'gree','points': 5  }

alien_0 = {'color': 'gree'}

## 6.2.1 访问字典中的值

alien_0 = {'color': 'gree'}
print(alien_0['color'])

alien_0 = {'color': 'gree','points': 5  }

new_points = alien_0['points']
print(f"You just earned {new_points} points")

## 6.2.2  添加键值对

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

alien_0 = {'color': 'gree','points': 5  }
print(alien_0)

#新增外星人的x坐标和y坐标信息
alien_0['x_position'] = 0
alien_0["y_position"] = 25
print(alien_0)             #新增按照顺序添加进行

## 6.2.3 先创建一个空字典

alien_0 = {'color': 'gree','points': 5  }

alien_0 = {}
alien_0['colors'] = "gree"
alien_0["points"] = 5

print(alien_0)

## 6.2.4 修改字典中的值

alien_0 = {'color': 'gree','points': 5  }
print(f"The alien is {alien_0['color']}.")

alien_0['color'] = 'yellow'
print(f"The alien is now {alien_0['color']}.")

alien_0 = {
    'x_position': 0,
    'y_position': 25,
    'speed': 'medium'
}

print(f"Original x_position : {alien_0['x_position']}")

#向右移动外星人
#根据当前速度确定将外星人向右移动多远

if alien_0['speed'] == 'slow':
    x_increment = 1
elif alien_0["speed"] == 'medium':
    x_increment = 2
else:
    x_increment = 3
    
    

#新位置为旧位置x_position 加上移动距离x_increment
alien_0['x_position'] = alien_0['x_position'] + x_increment
print(f"New x_position : {alien_0['x_position']}")

## 6.2.5 删除键值对



任务:
字典alien_0 = {'color': 'gree','points': 5  }
使用del 语句从字典中删除键'point'和它的值

del 字典名 + 要删除的键

alien_0 = {'color': 'gree','points': 5  }
print(alien_0)

del alien_0['points']   #删除point
print(alien_0)

## 6.2.6 由类似对象组成的字典 

任务:打印出Sarah's favorite language is C.

favorite_language = {
    'jen': 'python',
    'sarah': 'c',
    'edward':'ruby',
    'phil': 'python'
}

language = favorite_language['sarah'].title()
print(f"Sarah's favorite language is {language}. ")

## 6.2.7 使用get() 来访问值

alien_0 = {'color': 'gree','speed': 'slow'  }
alien_0['point']

alien_0 = {'color': 'gree','speed': 'slow'  }
alien_0.get('points','no points value assigned')  #如果没有这个key值,就返回第二个参数;有则返回相应的值

alien_0 = {'color': 'gree','speed': 'slow'  }
point_value = alien_0.get('points') 
print(point_value)

alien_0 = {'color': 'gree','speed': 'slow'  }
point_value = alien_0.get('speed') 
print(point_value)

# 6.3 遍历字典

## 6.3.1 遍历所有的键值对

user_0 = {
    'username' : 'efermi',
    'first' : 'enrico',
    'last' : 'fermi'
    }
    
任务:打印出
Key:username
Value:efermi

Key:first
Value:enrico

Key:last
Value:fermi

user_0 = {
    'username' : 'efermi',
    'first' : 'enrico',
    'last' : 'fermi'
    }
for a,b in user_0.items():   #字典的键值取出items()
    print(f"Key:{a}")
    print(f"Value:{b}\n")

user_0 = {
    'username' : 'efermi',
    'first' : 'enrico',
    'last' : 'fermi'
    }
for a,b in user_0:
    print(f"Key:{a}")
    print(f"Value:{b}\n")

favorite_language = {
    'jen': 'python',
    'sarah': 'c',
    'edward':'ruby',
    'phil': 'python'
}

任务:打印以下内容
Jen's favorrite language is Python.
Sarah's favorrite language is C.
Edward's favorrite language is Ruby.
Phil's favorrite language is Python.

favorite_language = {
    'jen': 'python',
    'sarah': 'c',
    'edward':'ruby',
    'phil': 'python'
}

for name,language in favorite_language.items():
    print(f"{name.title()}'s favorrite language is {language.title()}.")

## 6.3.2 遍历字典中的所有键 

keys()方法,返回一个字典中所有的键

favorite_language = {
    'jen': 'python',
    'sarah': 'c',
    'edward':'ruby',
    'phil': 'python'
}

for name in favorite_language.keys():
    print(name.title())

打印出:
Hi Jen.
Hi Sarah.
    Sarah,I see you love C!
Hi Edward.
Hi Phil.
    Phil,I see you love Python!

favorite_language = {
    'jen': 'python',
    'sarah': 'c',
    'edward':'ruby',
    'phil': 'python'
}

friends = ["phil",'sarah']
for name,language in favorite_language.items():
    print(f"Hi {name.title()}.")
    
    if  name in friends:
        print(f"\t{name.title()},I see you love {language.title()}!")

favorite_language = {
    'jen': 'python',
    'sarah': 'c',
    'edward':'ruby',
    'phil': 'python'
}

if 'egf' not in favorite_language.keys():
    print("Egf,please take our poll! ")

## 6.3.3 按特定顺序遍历字典中的所有键

使用sorted()对列表临时排序

favorite_language = {
    'jen': 'python',
    'sarah': 'c',
    'edward':'ruby',
    'phil': 'python'
}

for name in favorite_language.keys():
    print(f"{name.title()},thank you for taking the poll.")

favorite_language = {
    'jen': 'python',
    'sarah': 'c',
    'edward':'ruby',
    'phil': 'python'
}

for name in sorted(favorite_language.keys()):   #在字典前面进行sorted()方法
    print(f"{name.title()},thank you for taking the poll.")

## 6.3.4 遍历字典中的所有值

keys()方法--返回字典中所有的键
value()方法--返回字典中的所有值

favorite_language = {
    'jen': 'python',
    'sarah': 'c',
    'edward':'ruby',
    'phil': 'python'
}

print("The following languages have been mentioned:")
for language in favorite_language.values():
    print(language.title())

favorite_language = {
    'jen': 'python',
    'sarah': 'c',
    'edward':'ruby',
    'phil': 'python'
}

print("The following languages have been mentioned:")
for language in set(favorite_language.values()):    #set()方法可以实现去重
    print(language.title())

#  6.4 嵌套(套娃)

## 6.4.1 字典列表

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

aliens = [alien_0,alien_1,alien_2]   #分别定义字典,最后添加到列表中,循环打印
for alien in aliens:
    print(alien)

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

#创建30个绿色的外星人
for alien_number in range(30):
    new_alien = {'color': 'gree', 'points': 5,'speed':'slow'}
    aliens.append(new_alien)                                      #append()添加到空列表
    
#显示前5个外星人
for alien in aliens[:5]:
    print(alien)                     #切片显示前几个信息
    
#显示...
print("...")

#显示创建了多少个外星人
print(f"Totle number of aliens:{len(aliens)}")   #len()显示长度

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

#创建30个绿色的外星人
for alien_number in range(30):
    new_alien = {'color': 'gree', 'points': 5,'speed':'slow'}
    aliens.append(new_alien)                                      #append()添加到空列表

    
#前三个外星人修改为黄色,速度为中等且值为 10 分   
for alien in aliens[:3]:
    if alien['color'] == 'gree':
        alien['color'] = 'yellow'
        alien['speed'] = 'medium'
        alien['points'] = 10
         
    

#显示前5个外星人
for alien in aliens[:5]:
    print(alien)                     #切片显示前几个信息
    
#显示...
print("...")

#显示创建了多少个外星人
print(f"Totle number of aliens:{len(aliens)}")   #len()显示长度

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

#创建30个绿色的外星人
for alien_number in range(30):
    new_alien = {'color': 'gree', 'points': 5,'speed':'slow'}
    aliens.append(new_alien)                                      #append()添加到空列表

 #编写一个if语句来确保只修改绿色外星人   
#如果外星人是绿色,就将其颜色改为'yellow',将速度改为’medium‘,并将分数改为10 
for alien in aliens[:3]:
    if alien['color'] == 'gree':
        alien['color'] = 'yellow'
        alien['speed'] = 'medium'
        alien['points'] = 10
         
    #将黄色外星人改为移动速度快,且值为15,的红色外星人
    elif alien['color'] == 'yellow':
        alien['color'] = 'red'
        alien['speed'] = 'fast'
        alien['points'] = 15

#显示前5个外星人
for alien in aliens[:5]:
    print(alien)                     #切片显示前几个信息
    
#显示...
print("...")

#显示创建了多少个外星人
print(f"Totle number of aliens:{len(aliens)}")   #len()显示长度

## 6.4.2 在字典中存储列表

pizza = {
    'crust': 'thick',
    'toppings' : ['mushrooms','extra cheesse']
    }

You ordered a thick-crust pizza with the following toppingss:
    mushrooms
    extra cheese

#存储所点披萨的信息
pizza = {
    'crust': 'thick',
    'toppings' : ['mushrooms','extra cheesse'],
    }

#概述所点的披萨
print(f"You ordered a {pizza['crust']}-crust pizza with the following toppingss: ")

#for 循环遍历toppings
for topping in pizza['toppings']:
    print("\t"+topping)



favorite_language = {
    'jen': ['python','ruby'],
    'sarah': ['c'],
    'edward':['ruby','go'],
    'phil': ['python','haskell']
}

for name,languages in favorite_language.items():
    print(f"\n{name.title()}'s favorite language are: '")
    for language in languages:                              #第一层遍历的是列表出来,第二次遍历列表中的元素  for  for 
        print(f"\t{language.title()}.")

## 6.4.3 在字典中存储字典

users = {
    'aeinstein': {
        'first':'albert',
        'last': 'eninstein',
        'location' : 'princeton'
    },
    
    'mcurie' : {
         'first':'marie',
        'last': 'curie',
        'location' : 'paris'
    }
}


#需求:打印出

Username : Aeinstein
	Full name : Albert Eninstein
	Location : princeton

Username : Mcurie
	Full name : Marie Curie
	Location : paris

users = {
    'aeinstein': {
        'first':'albert',
        'last': 'eninstein',
        'location' : 'princeton'
    },
    
    'mcurie' : {
         'first':'marie',
        'last': 'curie',
        'location' : 'paris'
    }
}



for username,user_info in users.items():
    print(f"\nUsername : {username.title()}")
    
    full_name = f"{user_info['first']} {user_info['last']}"
    location = user_info['location']
    
    print(f"\tFull name : {full_name.title()}")
    print(f"\tLocation : {location}")

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值