1、表3是雇员每周工作时间记录表。每行将一个雇员7天的工作时间记录在7列中。编写一个程序解决下面的问题。1选择合适的数据结构存储雇员及其工作信息;2统计每个雇员的总工作时间按照总工作时间降序的方式显示雇员姓名及其总工时。3以雇员每天工作时间为检测对象找出在行中最大的数且也是列中最大的数并按如下格式显示:XXX 员工 星期 X 工作XX小时!如:Employee_3 员工星期天工作9小时!表3 雇员
(1) 可以使用字典来存储每个雇员及其工作信息。字典的键可以是雇员的姓名,值可以是一个列表,列表中包含每天的工作时间。
(2) 首先需要计算每个雇员的总工作时间,可以使用一个循环遍历字典中的每个雇员的工作时间列表,并将每天的工作时间相加得到总工作时间。然后可以使用sorted函数按照总工作时间降序排序字典,并将结果打印出来。
(3) 需要找出在行中最大的数且也是列中最大的数。可以使用两个循环嵌套遍历每个元素,同时记录当前最大值和对应的行列索引。然后可以根据索引找到对应的雇员姓名和星期几,并将结果按照指定格式打印出来。
下面是一个可能的解决方案:
data = {
"Employee_0": [2, 4, 3, 4, 5, 8, 8],
"Employee_1": [7, 3, 4, 3, 3, 4, 4],
"Employee_2": [3, 3, 4, 3, 3, 2, 2],
"Employee_3": [9, 3, 4, 7, 3, 4, 1],
"Employee_4": [3, 5, 4, 3, 6, 3, 8],
"Employee_5": [3, 4, 4, 6, 3, 4, 4],
"Employee_6": [3, 7, 4, 8, 3, 8, 4],
"Employee_7": [6, 3, 5, 9, 2, 7, 9]
}
# 统计每个雇员的总工作时间
total_hours = {}
for employee, hours in data.items():
total_hours[employee] = sum(hours)
# 按照总工作时间降序排序并打印结果
sorted_hours = sorted(total_hours.items(), key=lambda x: x[1], reverse=True)
for employee, hours in sorted_hours:
print(employee, "总工时:", hours)
# 找出在行中最大的数且也是列中最大的数
max_value = 0
row_index = 0
col_index = 0
for i, hours in enumerate(data.values()):
for j, hour in enumerate(hours):
if hour > max_value:
max_value = hour
row_index = i
col_index = j
# 根据索引找到对应的雇员姓名和星期几,并打印结果
employees = list(data.keys())
days = ["星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]
employee_name = employees[row_index]
day_name = days[col_index]
print(employee_name, "员工", day_name, "工作", max_value, "小时!")
运行结果:
Employee_3 总工时: 31
Employee_6 总工时: 37
Employee_7 总工时: 37
Employee_0 总工时: 34
Employee_4 总工时: 32
Employee_5 总工时: 28
Employee_1 总工时: 28
Employee_2 总工时: 20
Employee_7 员工 星期三 工作9小时!
原文地址: http://www.cveoy.top/t/topic/iXDL 著作权归作者所有。请勿转载和采集!