我有如下“待办事项列表”。 我想在没有sort()函数的情况下,在“银色级别”、“所需时间”和“传入订单”之后安排“待办事项列表”
# "Argent Level", "The time required" and "Incoming order"
work_list = [
"Low_Level, 1, A.Login Error",
"High_Level, 3, B.User info Error",
"Nomal_Level, 1, C.Admin Error",
"Low_Level, 2, D.Icon change of User",
"High_Level, 3, E.Email export Error",
"Nomal_Level, 1, F.Photo size Error",
"High_Level, 2, G.Admin Page Error",
"Nomal_Level, 3, H.Customer Page Error",
"Low_Level, 1, I.Image box Error",
"Nomal_Level, 3, J.Border Error",
"Low_Level, 1, K.Background Color Error",
"High_Level, 2, L.SignUp Error",
]
例如,下面有相同的“高级”列表
"High_Level, 3, B.User info Error",
"High_Level, 3, E.Email export Error",
"High_Level, 2, G.Admin Page Error",
"High_Level, 2, L.SignUp Error",
首先,我想按“所需时间”排序如下,如果它们有相同的“所需时间”,下一个按来料订单排序,使用大写字母“来料订单”
"High_Level, 2, G.Admin Page Error",
"High_Level, 2, L.SignUp Error",
"High_Level, 3, B.User info Error",
"High_Level, 3, E.Email export Error",
我试着编写这样的代码。但这是不正确的。
high_level_list = []
nomal_level_list = []
low_level_list = []
for i in range(0, len(work_list)):
if "High_Level" in work_list[i]:
high_level_list.append(work_list[i])
for i in range(0, len(work_list)):
if "Nomal_Level" in work_list[i]:
nomal_level_list.append(work_list[i])
for i in range(0, len(work_list)):
if "Low_Level" in work_list[i]:
low_level_list.append(work_list[i])
for i in range(0, len(high_level_list)):
if high_level_list[i][1] >= 3:
temp = high_level_list[-1]
high_level_list[-1] = high_level_list[i]
high_level_list[i] = temp
print(high_level_list)
我想输出如下所示
"High_Level, 2, G.Admin Page Error",
"High_Level, 2, L.SignUp Error",
"High_Level, 3, B.User info Error",
"High_Level, 3, E.Email export Error",
"Nomal_Level, 1, C.Admin Error",
"Nomal_Level, 1, F.Photo size Error",
"Nomal_Level, 3, H.Customer Page Error",
"Nomal_Level, 3, J.Border Error",
"Low_Level, 1, A.Login Error",
"Low_Level, 1, I.Image box Error",
"Low_Level, 1, K.Background Color Error",
"Low_Level, 2, D.Icon change of User",
首先,您需要将
work_list
转换为元组列表,而不仅仅是字符串,这样您就可以访问各个字段,特别是上一步所需的数字您的第一个循环应该可以工作,但是您可以将它们作为列表理解变得更加紧凑
您的最后一个循环是一种有缺陷的插入排序,但是您可以使用另一个列表理解来过滤值为3或更高的
high
项,而不是试图修复这个问题:这给你
对
normal
和low
级别以及低于3的high
执行相同的操作,然后将列表放回一起然而,在所有远程实际应用中,我强烈建议只使用
sort
(列表方法)或sorted
(内置函数)和适当的键函数,例如:相关问题 更多 >
编程相关推荐