Сравнивая списки и выделяя ключевые элементы
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
, Может кто-нибудь, пожалуйста, помогите мне, где я иду не так?
2 ответа
Приведенный ниже код возьмет два ваших списка и напечатает цветной вывод, выделив эти элементы списка из 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)
Вы можете проверить map
оператор:
items = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, items))
Вам не нужно предоставлять лямбду. Вы также можете явно определить функцию, которая возвращает красное число, если оно находится в ключах, а в противном случае - черное.
Например
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))