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
替换数字是错误的。有人可以帮我解决我的问题吗?
答案 0 :(得分:0)
您可以签出map
运算符:
items = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, items))
您不需要提供lambda。您还可以显式定义一个Function,如果它在键中,则返回一个红色数字,否则返回一个黑色数字。
例如
from colorama import Fore, init
init()
key_numbers = [1,3,5,7,9]
numbers = [3,4,6,3,8,9,7,9,3,1]
def highlight(number):
if number in key_numbers:
return Fore.RED + str(number)
else:
return str(number)
colored_numbers = list(map(highlight, numbers))
答案 1 :(得分:0)
下面的代码将获取您的两个列表并输出彩色输出,突出显示来自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)