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

我的 python 代码有点问题。这个程序是关于进程调度的,它会得到一个用户输入的进程数,到达时间和突发时间,但是要求是有一个动态列表(对于进程数),并且**得到用户输入的到达和突发时间如下所示。

我编辑了我以前的帖子并删除了所有不必要的代码,以使代码更精确地解决问题。

案例 1:如果我用 4 个进程运行程序:

输入进程数:4
到达时间:
P1:0
P2:2
P3:4
P4:5
突发时间:
P1:7
P2:4
P3:1
P4: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 here


if __name__ == "__main__":

    process_qty = int(input("Enter No. of Processes: "))

    initializeData(process_qty)

有什么建议吗?我只是在学习 python 并且很高兴!


拉风的咖菲猫
浏览 172回答 2
2回答

子衿沉夜

您应该将到达时间和突发时间附加到两个不同的列表中,因为它们很容易处理,no_p=int(input("No of processes:"))ar=list()br=list()final_list=list()for i in range(no_p):&nbsp; &nbsp; at=int(input("arrival time:"))&nbsp; &nbsp; ar.append(at)for j in range(no_p):&nbsp; &nbsp; bt=int(input("burst time:"))&nbsp; &nbsp; br.append(bt)for k in range(no_p):&nbsp; &nbsp; a=[k+1,ar[k],br[k],0]&nbsp; &nbsp; final_list.append(a)print(final_list)输出:No of processes:4arrival time:1arrival time:2arrival time:3arrival time:4burst time:1burst time:2burst time:3burst time:4[[1, 1, 1, 0], [2, 2, 2, 0], [3, 3, 3, 0], [4, 4, 4, 0]]还可以在不使用 3 个 for 循环的情况下应用更紧凑的解决方案。

隔江千里

我相信您要求的是更简单/更清洁/pythonic 代码。下面是我将如何读取输入n = int(input('Enter no of processes: ')) # n contains the number of processesarrivals = list() # this list will contain the arrival times of the processesbursts = list() # this will contain the burst times of the processesfor i in range(n):&nbsp; arrivals.append(int(input(f'Enter arrival time for P{i+1}: ')))for i in range(n):&nbsp; bursts.append(int(input(f'Enter burst time for P{i+1}: ')))我显然不能为您编写整个程序,但这应该可以帮助您朝着正确的方向开始。此外,函数式和面向对象的程序很棒,但不要过度使用。我看到你写了太多的功能。对于像这样的简单程序,不建议编写单独的函数(至少不要那么多)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python