创建一个列表,在该列表中,它按照列出的顺序检查和分配数字。如果它的名字里有封面,那么它的封面就没有别的了。如果是玻璃盖,那么它就是一个盖,但是如果只有玻璃,那么它的玻璃和应该得到与之相应的数字。我的问题是,如果列表中有玻璃罩,我的列表“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)
不要一次只处理一个键(这需要标记已固定的值),而是尝试一次考虑一个值,并找出哪个键首先匹配它们。后一个问题可以抽象为一个单独的函数:
这将打印
[0, 0, 2, 0, 0, 1, 4]
;4表示所有键都不匹配,因此您应该拒绝该值或使用它的任何默认值(可能通过拥有比keys
长一个的labels
列表)相关问题 更多 >
编程相关推荐