#!/usr/bin/env python
#-- coding:utf-8 --
#字典
#1.简单的字典
alien_0 = {'color': 'green', 'points': 5} # 字典是大括号,列表是中括号
print(alien_0['color'])
print(alien_0['points'])
#2.访问字典的值
alien_0 = {'color': 'green', 'points': 5}
v = alien_0['points']
print('your scores add ' + str(v) + '!')
#3.添加元素
alien_0 = {'color': 'green', 'points': 5}
alien_0['x_position'] = 25
alien_0['y_position'] = 0
print(alien_0)
#4.创建空字典
alien_1 = {}
alien_1['color'] = 'yellow'
alien_1['point'] = 10
print(alien_1)
#5.改变字典的值
alien_0 = {'color': 'green', 'points': 5}
alien_0['color'] = 'red'
alien_0['points'] = 15
print(alien_0)
#5.2 小例子
alien_0 = {'color': 'green', 'points': 5, 'x_position': 25, 'y_position': 0, 'speed': 'medium'}
if alien_0['speed'] == 'slow':
move = 1
elif alien_0['speed'] == 'medium':
move = 2
else:
move = 3
alien_0['x_position'] += move
alien_0['y_position'] += move
print(move, alien_0['x_position'], alien_0['x_position'])
#6.删除字典中元素
alien_0 = {'color': 'green', 'points': 5}
del alien_0['color']
print(alien_0)
#7.由类似对象组成的字典
favorite_language = {
'Max': 'c',
'Ldong': 'python',
'Mini': 'java',
}
print("Max's favorite language is " +
favorite_language['Mini'].title() +
'.')
#7.2 例子
lover = {
'lastname': 'jingjing',
'firstname': 'liu',
'sex': 'female',
'city': 'wuhan',
'age': 18,
}
print(lover)
#8.遍历字典的 键和值
lover = {
'lastname': 'jingjing',
'firstname': 'liu',
'sex': 'female',
'city': 'wuhan',
'size': 18,
'age': 18,
}
#遍历键和值 使用方法items()
for attribute, detail in lover.items(): # for里声明两个变量;方法items()返回 键和值
# print(" key: ", attribute.title(), "\n", "value: ", detail, "\n")
print("key: ", attribute)
print("value: ", detail, "\n")
#只遍历键
for attribute in lover.keys():
print(attribute.title())
#只遍历键 方法keys()可以省略
for attribute in lover:
print(attribute.title())
#遍历键并排序 用sorted()
for attribute in sorted(lover.keys()):
print(attribute.title())
#只遍历值
for detail in lover.values():
print(detail)
#只遍历值,并剔除重复项,使用方法set()
for detail in set(lover.values()):
print(detail)
#9.字典列表:是一个列表,列表里的元素都是字典
alien_0 = {'color': 'green', '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)
#10. 建立30个字典的列表
aliens = []
for alien_num in range(30): # alien_nums是0~29
new_alien = {'color': 'green', 'points': 5, 'speed': 'slow'} # 字典
aliens.append(new_alien) # 将new_alien加入到列表aliens的最后
for alien in aliens[0:5]: # 打印列表的前5个元素
print(alien)
print(len(aliens)) # 打印列表的长度
#11.建立30个字典的列表,并将前3个的颜色和速度改掉
aliens = []
for alien_num in range(30): # alien_nums是0~29
new_alien = {'color': 'green', 'points': 5, 'speed': 'slow'} # 字典
aliens.append(new_alien) # 将new_alien加入到列表aliens的最后
for alien in aliens[0:3]:
if alien['color'] == 'green': # 将绿色外星人改为黄色
alien['color'] = 'yellow'
alien['speed'] = 'medium'
alien['points'] = 10
elif alien['color'] == 'yellow': # 将黄色外星人改为红色
alien['color'] = 'red'
alien['speed'] = 'fast'
alien['points'] = 15
for alien in aliens[0:5]: # 打印列表的前5个元素
print(alien)
#12.在字典中储存列表
alien_0 = {'color': 'green',
'points': 5,
'sub': ['1', '2', '3'], # 在值里面存列表
}
print("alien_0's color is ", alien_0['color'])
print("alien_0's sub is ", alien_0['sub'])
#13.在字典中储存字典
alien_0 = {
'name': {'ChineseName': 'Liu', 'EnglishName': 'Max'}, # 在值里面存字典
'city': {'ChineseName': 'xiaogan', 'EnglishName': 'Beijing'},
}
print('alien_0 name is ', alien_0['name'])
print('alien_0 city is ', alien_0['city'], '\n')
for name_attribute, name_detail in alien_0.items(): # 注意:每个字典元素的字典的键要一样,才可以循环打印
print(name_attribute)
chinese_name = name_detail['ChineseName']
english_name = name_detail['EnglishName']
print(chinese_name, english_name, '\n')