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

2024-05-29 04:03:17 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我编辑了上一篇文章,删除了所有不必要的代码,使代码更加精确,只是为了解决这个问题。

Case 1: If I run the program with 4 processes:

Enter No. Of Processes: 4
Arrival Time:
P1: 0
P2: 2
P3: 4
P4: 5
Burst Time:
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]]

What I wanted is that the process data would be arranged in this way while still getting the inputs in for loop:

[process_id, arrival_time, burst_time, 0] -- I need to add a value of '0' for every end of a list

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,并为此感到高兴


Tags: the代码inidfordatatime进程
2条回答

您应该在两个不同的列表中添加到达时间和突发时间,因为处理它们很容易

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循环

我相信您要求的是一个更简单/更干净/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}: ')))

我显然不能为您编写整个程序,但这应该可以帮助您朝着正确的方向开始

此外,函数式和面向对象的程序也很好,但不要过分。我发现你写的函数太多了。对于这样一个简单的程序,不建议编写单独的函数(至少不是那么多)

相关问题 更多 >

    热门问题