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']) + " "
)
