首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Python中按新顺序排列列表

如何在Python中按新顺序排列列表
EN

Stack Overflow用户
提问于 2020-09-22 23:06:02
回答 2查看 58关注 0票数 0

我有一个列表,它是作为API的响应得到的:

代码语言:javascript
复制
mylist = ['Production Name', 'Receipe Name', 'Cp', 'Target Thickness', 'Average Thickness', '2 Sigma',
      'Maximum Thickness', 'Minimum Thickness', 'Out of Limits', 'Variation Coefficient', 'Web Width', 'Length',
      'Roll Number', 'Roll Stop Time', 'Roll Start Time', 'Tics', 'Cycle Time', 'Mold Time', 'Open Time', 'Close Time']

列表中的项目不会固定在特定的索引上,它们会不断变化。有几个项目我必须以特定的顺序排列,如下面的列表:

代码语言:javascript
复制
req_list = [ 'Receipe Name', 'Production Name', 'Roll Number', 'Roll Stop Time', 'Roll Start Time', 'Target Thickness', 'Average Thickness', '2 Sigma',
'Maximum Thickness', 'Minimum Thickness', 'Out of Limits', 'Variation Coefficient', 'Cp', 'Web Width', 'Length' ]

然后可以在Length之后存储额外的项,如'Tics', 'Cycle Time', 'Mold Time', 'Open Time', 'Close Time'

因此,最终列表将如下所示:

代码语言:javascript
复制
req_list = [ 'Receipe Name', 'Production Name', 'Roll Number', 'Roll Stop Time', 'Roll Start Time', 'Target Thickness', 'Average Thickness', '2 Sigma',
          'Maximum Thickness', 'Minimum Thickness', 'Out of Limits', 'Variation Coefficient', 'Cp', 'Web Width', 'Length', 
          'Tics', 'Cycle Time', 'Mold Time', 'Open Time', 'Close Time' ]

我该怎么做呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-09-22 23:29:54

在我的示例中,我使用random.shuffle来模拟mylist

创建一个set,使用列表理解检查元素是否在集合中。

尝试下面的代码:

代码语言:javascript
复制
import random

mylist = ['Production Name', 'Receipe Name', 'Cp', 'Target Thickness', 'Average Thickness', '2 Sigma',
      'Maximum Thickness', 'Minimum Thickness', 'Out of Limits', 'Variation Coefficient', 'Web Width', 'Length',
      'Roll Number', 'Roll Stop Time', 'Roll Start Time', 'Tics', 'Cycle Time', 'Mold Time', 'Open Time', 'Close Time']

random.shuffle(mylist)

print(mylist)

req_list = ['Receipe Name', 'Production Name', 'Roll Number', 'Roll Stop Time', 'Roll Start Time', 'Target Thickness', 'Average Thickness', '2 Sigma',
'Maximum Thickness', 'Minimum Thickness', 'Out of Limits', 'Variation Coefficient', 'Cp', 'Web Width', 'Length']

tmp = set(req_list)

print(req_list + [i for i in mylist if i not in tmp])
票数 1
EN

Stack Overflow用户

发布于 2020-09-22 23:29:14

对于这个程序,您应该使用random.shuffle(listname)。然后是list = reqlist + randomlist。在您的例子中,我认为它应该是这样的:

代码语言:javascript
复制
import random             
extra_list = ['Tics', 'Cycle Time', 'Mold Time', 'Open Time', 'Close Time']
req_list = [ 'Recipe Name', 'Production Name', 'Roll Number', 'Roll Stop Time', 
'Roll Start Time', 'Target Thickness', 'Average Thickness', '2 Sigma',
'Maximum Thickness', 'Minimum Thickness', 'Out of Limits', 'Variation Coefficient', 'Cp', 'Web Width', 'Length' ]
random.shuffle(extra_list)
list = req_list + extra_list
print(extra_list)   
print(req_list)
print(list)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64012524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档