为了账号安全,请及时绑定邮箱和手机立即绑定

如何在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 关注
  • 99 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信