Skip to main content
 首页 » 编程设计

python之带有列表的 if 语句包含

2025年05月04日17jackei

我有一个列表,其中包含数字 (lijstkleur) 1、4、6、7。 我的范围也从 0 到 8。 现在我有以下代码:

for x in range(0, len(L), 1): 
    if x in lijstkleur == True: 
        self.label = Label(self.frame, text=string[x], fg="yellow", bg="red") 
        self.label.pack(side=LEFT) 
    else: 
        self.label = Label(self.frame, text=string[x], fg="white", bg="red") 
        self.label.pack(side=LEFT) 

但是所有的数字都变白了,这个if语句有什么问题

请您参考如下方法:

无需使用 == True :

if x in lijstkleur: 

表达式x in lijstkleur==True被解释为 (x in lijstkleur) and (lijstkleur == True) ;列表永远不会等于 bool 值 True因此你最终测试了something and False , 保证是 False反而。这叫做 comparison chaining , 使表达式像 10 < a < 20可能。

您可以简化您的 range()调用len(L) :

for x in range(len(L)): 

无需重复 .pack()调用:

if x in lijstkleur: 
    self.label=Label(self.frame,text=string[x],fg="yellow",bg="red") 
else: 
    self.label=Label(self.frame,text=string[x],fg="white",bg="red") 
self.label.pack(side=LEFT)