亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在python中排列不同列表中的項目?

如何在python中排列不同列表中的項目?

拉風的咖菲貓 2023-01-04 10:29:32
我的 python 代碼有點問題。這個程序是關于進程調度的,它會得到一個用戶輸入的進程數,到達時間和突發時間,但是要求是有一個動態列表(對于進程數),并且**得到用戶輸入的到達和突發時間如下所示。我編輯了我以前的帖子并刪除了所有不必要的代碼,以使代碼更精確地解決問題。案例 1:如果我用 4 個進程運行程序:輸入進程數:4到達時間:P1:0P2:2P3:4P4:5突發時間:P1:7P2:4P3:1P4:4[1, 2, 3, 4, 0, 2, 4, 5, 7, 4, 1, 4] < ---- 輸出從上面的輸出我想把它改成這樣[[1, 0, 7, 0], [2, 2, 4, 0], [3, 4, 1, 0], [4, 5, 4, 0]]我想要的是過程數據將以這種方式排列,同時仍然在 for 循環中獲取輸入:[process_id, arrival_time, burst_time, 0] -- 我需要為列表的每一端添加一個值“0”def initializeData(process_qty):initialize_data = []temporary = []for i in range(process_qty):    process_id = i + 1    temporary.extend([process_id])print("Arrival Time: ")for i in range(process_qty):    arrival_time = int(input(" P" + str(i + 1) + ": "))    temporary.append(arrival_time)print("Burst Time: ")for i in range(process_qty):    burst_time = int(input(" P" + str(i + 1) + ": "))    temporary.append(burst_time)initialize_data.extend(temporary)print(initialize_data)# I have good amounts functions and codes hereif __name__ == "__main__":    process_qty = int(input("Enter No. of Processes: "))    initializeData(process_qty)有什么建議嗎?我只是在學習 python 并且很高興!
查看完整描述

2 回答

?
子衿沉夜

TA貢獻1828條經驗 獲得超3個贊

您應該將到達時間和突發時間附加到兩個不同的列表中,因為它們很容易處理,


no_p=int(input("No of processes:"))

ar=list()

br=list()

final_list=list()


for i in range(no_p):

    at=int(input("arrival time:"))

    ar.append(at)


for j in range(no_p):

    bt=int(input("burst time:"))

    br.append(bt)


for k in range(no_p):

    a=[k+1,ar[k],br[k],0]

    final_list.append(a)

print(final_list)

輸出:


No of processes:4

arrival time:1

arrival time:2

arrival time:3

arrival time:4

burst time:1

burst time:2

burst time:3

burst time:4

[[1, 1, 1, 0], [2, 2, 2, 0], [3, 3, 3, 0], [4, 4, 4, 0]]

還可以在不使用 3 個 for 循環的情況下應用更緊湊的解決方案。


查看完整回答
反對 回復 2023-01-04
?
隔江千里

TA貢獻1906條經驗 獲得超10個贊

我相信您要求的是更簡單/更清潔/pythonic 代碼。下面是我將如何讀取輸入


n = int(input('Enter no of processes: ')) # n contains the number of processes

arrivals = list() # this list will contain the arrival times of the processes

bursts = list() # this will contain the burst times of the processes

for i in range(n):

  arrivals.append(int(input(f'Enter arrival time for P{i+1}: ')))

for i in range(n):

  bursts.append(int(input(f'Enter burst time for P{i+1}: ')))

我顯然不能為您編寫整個程序,但這應該可以幫助您朝著正確的方向開始。


此外,函數式和面向對象的程序很棒,但不要過度使用。我看到你寫了太多的功能。對于像這樣的簡單程序,不建議編寫單獨的函數(至少不要那么多)


查看完整回答
反對 回復 2023-01-04
  • 2 回答
  • 0 關注
  • 127 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號