第 6 章 字典
一、一个简单的字典
在Python中,“字典” 是一系列键—值对 。每个键 都与一个值相关联,你可以使用键来访问与之相关联的值。与键相关联的值可以是数字、字符串、列表乃至字典。事实上,可将任何Python对象用作字典中的值
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中。
alien = {'color': 'green', 'points': 5}
二、使用字典
1、访问字典中的值
print(alien['color']) # green
print(alien['points']) # 5
2、添加键—值对
alien= {'color': 'green', 'points': 5}
alien['age'] = 6
alien['sex'] = "male"
print(alien) # {'color': 'green', 'points': 5, 'age': 6, 'sex': 'male'}
Python不关心键—值对的添加顺序,而只关心键和值之间的关联关系
3、先创建一个空字典
person = {}
person["name"] = "alice"
person["age"] = 20
print(person) # {'name': 'alice', 'age': 20}
4、修改字典中的值
person = {'name': 'alice', 'age': 20}
person["name"] = "messi"
person["age"] = 29
print(person) # {'name': 'messi', 'age': 29}
5、删除键—值对
person = {'name': 'alice', 'age': 20}
del person["name"]
print(person) # {'age': 20}
删除整个字典
person = {'name': 'alice', 'age': 20}
person.clear()
print(person) # {} 不会报错,清空字典
del dict
print(person) # 报错 删除字典
三、遍历字典
1、遍历所有的键—值对(.items())
person = {
'name': 'alice',
'age': 20,
'language':'python'
}
for key,value in person.items():
print("\nkey:"+key);
print("value:"+ str(value));
2、遍历字典中的所有键(.keys())
person = {
'name': 'alice',
'age': 20,
'language':'python'
}
for key in person.keys():
print("key:"+key);
3、按顺序遍历字典中的所有键 (sorted())
person = {
'name': 'alice',
'age': 20,
'language':'python'
}
for key in sorted(person.keys()):
print("key:"+key);
4、遍历字典中的所有值(.values())
person = {
'name': 'alice',
'age': 20,
'language':'python'
}
for value in person.values():
print("value:"+ str(value));
这种做法提取字典中所有的值,而没有考虑是否重复。涉及的值很少时,这也许不是问题,但如果被调查者很多,最终的列表可能包含大量的重复项。为剔除重复项,可使用集合(set)。集合 类似于列表,但每个元素都必须是独一无二的:
person = {
'name': 'alice',
'age': 20,
'language1':'python',
'language2':'python'
}
for value in set(person.values()):
print("value:"+ str(value));
四、嵌套
1、字典列表
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) #{'color': 'green', 'points': 5} {'color': 'yellow', 'points': 10} {'color': 'red', 'points': 15}
2、在字典中存储列表
person = {
"name":"leo",
"language":["python","java","javascript"]
}
print(person["language"][0]) # python
for lang in person["language"]:
print(lang); # python java javascript
3、在字典中存储字典
users = {
'aeinstein': {
'first': 'albert',
'last': 'einstein',
'location': 'princeton',
},
'mcurie': {
'first': 'marie',
'last': 'curie',
'location': 'paris',
},
}
第 7 章 用户输入和while 循环
一、用户输入
1、函数input() 的工作原理
函数input() 让程序暂停运行,等待用户输入一些文本。获取用户输入后,Python将其存储在一个变量中,以方便使用
message = input("please input your name: ") # leo
print(message) # leo
2、使用int() 来获取数值输入
age = input("How old are you? ") # "20" 字符串
age = int(age) # 20 整数
print(age) # 20 整数
3、求模运算符
5 % 3 # 2
6 % 3 # 0
可利用这一点来判断一个数是奇数还是偶数
number % 2 == 0:
二、while循环
1、使用while 循环
current_number = 1
while current_number <= 5:
print(current_number)
current_number += 1 # 1-5
2、使用标志
current_number = 1
active = True
while (current_number <= 5 and active):
print(current_number)
if(3 == current_number):
active=False;
else:
current_number+=1 #1,2,3
3、使用break 退出循环(执行break 语句,导致Python退出循环)
current_number = 1
while current_number <= 5:
print(current_number)
if(3 == current_number):
break;
else:
current_number+=1 # 1,2,3
4、在循环中使用continue
current_number = 0
while current_number < 10:
current_number += 1
if current_number % 2 == 0:
continue
print(current_number) # 1,3,5,7,9
5、while-else
count = 0
while count < 5:
print (count, "小于 5")
count = count + 1
else:
print (count, "大于或等于 5")
三、使用while 循环来处理列表和字典
1、删除包含特定值的所有列表元素
pets = ['dog', 'cat', 'dog', 'goldfish', 'cat', 'rabbit', 'cat']
while 'cat' in pets:
pets.remove('cat') #删除所有“cat”