s = []
seats = [4,1,5,9]
students = [1,3,2,6]
for i in range(len(students)):
s.append((min(seats, key=lambda x:abs(x-students[i]))))
print(s)
回傳每個學生值的最小距離。我想在為學生分配座位后從使用中洗掉座位。我將如何執行該操作?
uj5u.com熱心網友回復:
list.remove與最后一個值一起使用s
for i in range(len(students)):
s.append(min(seats, key=lambda x: abs(x - students[i])))
seats.remove(s[-1])
uj5u.com熱心網友回復:
如果您想從串列中洗掉最后一項,我可以想到兩種方法:
1)
mylist = mylist[:-1]
即使原始串列為空,這也很好。但是,這確實意味著必須創建串列的新副本,這可能會對記憶體使用產生負面影響。
2)
if mylist:
mylist.pop(-1)
這將原位洗掉串列中的最后一個條目。但是,您確實需要檢查以確保串列中至少有某些內容
uj5u.com熱心網友回復:
像這樣?
seats = set([4,1,5,9])
students = [1,3,2,6]
result = []
for student in students:
seat = min(seats, key=lambda seat:abs(seat-student))
seats.remove(seat)
result.append(seat)
print(result)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/435772.html
上一篇:想知道演算法的時間復雜度
