两个列表的共同部分

时间:2017-04-16 09:53:07

标签: python-3.x tkinter

    每次新时都会生成
  • list_1
  • list_2不可更改

在窗口中打印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')

但没有任何作用。错误在哪里?

1 个答案:

答案 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。