首页 > 解决方案 > 比较列表并突出显示关键元素

问题描述

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 

本质上,我希望代码遍历列表中的每个数字numbers并检查列表中是否存在相应的数字key_numbers

如果存在,我想用红色字体替换数字并继续下一个数字

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

我认为尝试将数字替换为number1. 有人可以帮我解决我哪里出错了吗?

标签: pythonpython-3.xlistterminal-color

解决方案


下面的代码将获取您的两个列表并打印出彩色输出,突出显示那些numbers也是number_keys. 让我知道这是否是您想要实现的目标!

#!/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)

推荐阅读