Python 比较列表并突出显示关键元素

Python 比较列表并突出显示关键元素,python,python-3.x,list,terminal-color,Python,Python 3.x,List,Terminal Color,基本上,我希望代码遍历编号列表中的每个编号,并检查键编号列表中是否存在相应的编号 如果它存在,我想用红色字体替换这个数字,然后转到下一个数字 如果在键号列表中存在数字,则输出应有一个以红色突出显示的数字列表,其他数字应以常规字体和颜色显示 我想我尝试用number1替换数字时出错了。有人能告诉我哪里出了问题吗?您可以查看接线员: from colorama import Fore, init init() key_numbers = [1,3,5,7,9] numbers = [3,4,6,

基本上,我希望代码遍历
编号
列表中的每个编号,并检查
键编号
列表中是否存在相应的编号

如果它存在,我想用红色字体替换这个数字,然后转到下一个数字

如果在
键号
列表中存在数字,则输出应有一个以红色突出显示的数字列表,其他数字应以常规字体和颜色显示

我想我尝试用
number1
替换数字时出错了。有人能告诉我哪里出了问题吗?

您可以查看接线员:

from colorama import Fore, init
init()

key_numbers = [1,3,5,7,9]
numbers  = [3,4,6,3,8,9,7,9,3,1]

for number in numbers:
       if number in key_numbers: 
           number1 = Fore.RED + number 
           numbers = [number1 if number else number for number in numbers] 
      else:
          continue 
您不需要提供lambda。您还可以显式定义一个函数,如果它在键中,则返回一个红色数字,否则返回一个黑色数字

例如

从colorama导入前,初始化
init()
键号=[1,3,5,7,9]
数字=[3,4,6,3,8,9,7,9,3,1]
def突出显示(编号):
如果键号中的数字:
返回Fore.RED+str(编号)
其他:
返回str(编号)
彩色数字=列表(地图(突出显示,数字))

下面的代码将获取您的两个列表并打印彩色输出,突出显示
数字
中的列表项,这些列表项也是
数字键
的一部分。如果这就是你想要实现的,请告诉我

items = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, items))

在第9行,您需要使用
str(number)
number
转换为字符串,以使代码正常工作。谢谢。没有在本地运行,只是想提及
map
操作员,因为它非常适合。请确保向回答您问题的人员提供一些反馈!
#!/usr/bin/python3
from colorama import init, Fore, Style

# init colorama
init()

def highlight(numbers, keys):
    """
    check if numbers exists in keys and
    print + highlight them in red.
    """
    for number in numbers:
        if number in keys:
            print(Fore.RED + str(number) + Style.RESET_ALL, end=" ")
        else:
            print(number, end=" ")
    print()  # print another "\n"

# define numbers and keys
key_numbers = [1, 3, 5, 7, 9]
numbers  = [3,4,6,3,8,9,7,9,3,1]

print("numbers to highlight: {}".format(key_numbers))

# call highlight()
highlight(numbers, key_numbers)