【发布时间】:2020-12-06 05:18:59
【问题描述】:
创建一个列表,在其中按列出的顺序检查和分配数字。说如果它的名称中有 COVER,那么它的 COVER 就没有别的了。如果 GLASS COVER 那么它是一个 COVER,但如果只有 GLASS 那么它的 GLASS 并且应该得到它的数字。我的问题是,如果列表有 GLASS COVER,我的列表“List_MainNum”会在其中获取两个值,对于 COVER 和 GLASS,当我希望它只分配 COVER 时,然后忽略进一步循环。我虽然 elif 语句会解决这个问题,但我错了
values = ['COVER','COVER','COVER','COVER','COVER','GLASS COVER','GLASS COVER','GLASS COVER','GLASS COVER','GLASS COVER'
,'SPRING', 'SPRING','SPRING','SPRING','GLASS COVER','COVER', 'SPRING GLASS' ,'TEST','TEST','TEST']
a = []
b = []
List_Main = []
List_MainNum = []
def sub(x,y):
a.append(text)
b.append(y)
Remain_List = []
labels = [['COVER', 'SPRING', 'GLASS',], [46,125, 33]]
for text in values:
for i in range(len(labels[1])):
if i==0 and labels[0][0] in text:
List_Main.append(text)
List_MainNum.append(labels[1][0])
elif labels[0][i] in text:
sub(labels[0][i], labels[1][i])
def Lizt(f,g):
List_MainNum.extend(b)
List_Main.extend(a)
Lizt(a,b)
for xyz in values:
if xyz not in List_Main:
Remain_List.append(xyz)
List_Main.extend(Remain_List)
print (List_Main)
print (b)
【问题讨论】:
-
那么...您的代码有效吗?如果不是,它做错了什么?看起来您不是在这里要求算法。
-
不说我有 bc,那么我的最终名单有 bc 两次。一次是 b 的编号,一次是 c 的编号。我只想要b的号码
-
这个问题可以通过在其中任何地方使用一致和清晰的名称来大大改善。您的文字介绍说有两个列表,但在实际代码中,我完全不知道六个不同列表中的哪一个对应于两者中的任何一个。变量名称不是不言自明的。代码做了很多从一个列表到另一个列表的附加值,但我无法弄清楚从哪里开始。我不知道代码中的输入或输出是什么,也不知道您在介绍中的示例输入中获得或期望什么输出。
-
哦,对不起,我现在就编辑它
-
我相信你可以看出我不是程序员。只是在大学里简单介绍了python。希望我的编辑有所帮助
标签: python arrays list for-loop if-statement