在窗口中打印list_1为默认黑色,我想在list_2中出现红色数字
import tkinter as tk
from tkinter import Label
from random import randint
list_1 = [randint(1, 100) for i in range(12)]
list_2 = [2, 5, 8, 9, 14, 26, 28, 34, 43, 51, 55, 60, 77]
root = tk.Tk()
label = tk.Label(root, text=list_1, padx=15, pady=15)
label.pack()
root.mainloop()
我试过这样:
if list_2 in list_1:
label.config(fg='red')
或者这个:
for i in list_2:
for i in list_1:
label.config(fg='red')
但没有任何作用。错误在哪里?
答案 0 :(得分:0)
要检查列表中的常见可清洗项目,您可能需要使用集合:
if set(list_2) & set(list_1):
label.config(fg='red')
或者
if any(n in set(list_2) for n in list_1):
label.config(fg='red')
您还可以使用any
和生成器表达式:
if any(n in list_2 for n in list_1):
label.config(fg='red')
但它的速度较慢且不那么pythonic。