Python学习:字典
1.字典是一系列键-值对。每个键都与一个值相关联,可以通过键来访问相应的值。与键相关联的值可以是数字、字符串、列表、字典或者任何的Python对象。
2.Python不关心字典中键-值对的存储顺序,只关心键和值之间的关联关系。也就是不能像列表中一样通过角标来访问键-值对。
3.使用字典,包括创建字典、访问字典中的值、添加键-值对、修改字典中的值、删除键-值对。
# 创建5个字典,描述某公司员工情况
employee_0 = {
'name': 'jack', 'age': 30, 'sex': 'male',
'position': 'intermediate engineer',
'score': 91
}
employee_1 = {
'name': 'nick', 'age': 25, 'sex': 'male',
'position': 'junior engineer',
'score': 85
}
employee_2 = {
'name': 'jason', 'age': 28, 'sex': 'male',
'position': 'super engineer',
'score': 95
}
employee_3 = {
'name': 'tom', 'age': 35, 'sex': 'male',
'position': 'expert',
'score': 98
}
employee_4 = {
'name': 'jacky', 'age': 33, 'sex': 'male',
'position': 'manager',
'score': 95
}
# 创建字典列表
employees = [employee_0, employee_1, employee_2, employee_3, employee_4]
# 创建空字典,待用户输入
employee = {}
while True:
employee['name'] = input("Please give the empolyee's name: ")
if employee['name'] == '':
break
employee['age'] = input("Please give the empolyee's age: ")
if employee['age'] == '':
break
employee['age'] = int(employee['age'])
employee['sex'] = input("Please give the empolyee's sex: ")
if employee['sex'] == '':
break
employee['position'] = input("Please give the empolyee's position: ")
if employee['position'] == '':
break
employee['score'] = input("Please give the empolyee's score: ")
if employee['score'] == '':
break
employee['score'] = int(employee['score'])
employees.append(employee)
end_of_input = input("Do you want to continue? (Y/n) ")
if end_of_input.lower() != 'y':
break
# 按一定格式输出列表中的字典元素
print("\nName Age Sex Position score ")
employee_num = len(employees)
while employee_num:
employee_num -= 1
print(
employees[employee_num]['name'] + " " +
str(employees[employee_num]['age']) + " " +
employees[employee_num]['sex'] + " " +
employees[employee_num]['position'] + " " +
str(employees[employee_num]['score']) + " "
)
employee_num = len(employees)
while employee_num:
employee_num -= 1
print("\nEmployee " + str(employee_num))
for key, value in employees[employee_num].items():
if key == 'age' or key == 'score':
print(key + ": " + str(value))
else:
print(key + ": " + value)
# 输出列表中包含哪些员工信息
keys = ['']
employee_num = len(employees)
while employee_num:
employee_num -= 1
for key_temp in employees[employee_num].keys():
keys_num = 0
for key in keys:
if key_temp != key:
keys_num += 1
if keys_num == len(keys):
keys.append(key_temp)
keys.pop(0)
print(keys)
# 找员工中是否有jack
names = []
employee_num = len(employees)
while employee_num:
employee_num -= 1
for name in employees[employee_num].values():
if name == 'jack':
names.append(name)
print(names)
# 列出所有员工评分
scores = []
employee_num = len(employees)
while employee_num:
employee_num -= 1
scores.append(employees[employee_num]['score'])
scores.sort(reverse = True)
score_temp = 0
for score in scores:
if score == score_temp:
scores.remove(score)
score_temp = score
print(scores)
# 把员工按评分顺序排列
employees_sorted = []
score_num = len(scores)
while score_num:
score_num -= 1
employee_num = len(employees)
while employee_num:
employee_num -= 1
if employees[employee_num]['score'] == scores[score_num]:
employees_sorted.append(employees[employee_num])
print("Name Age Sex Position score ")
employee_num = len(employees_sorted)
while employee_num:
employee_num -= 1
print(
employees_sorted[employee_num]['name'] + " " +
str(employees_sorted[employee_num]['age']) + " " +
employees_sorted[employee_num]['sex'] + " " +
employees_sorted[employee_num]['position'] + " " +
str(employees_sorted[employee_num]['score']) + " "
)
