Top.Mail.Ru
Ответы

Помогите с кодом на Python

123456789101112
 def card_deck(suit):
    my_list = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'валет', 'дама', 'король', 'туз']
    my_list1 = ['пик', 'треф', 'бубен', 'червей']
    my_list1.remove(suit)
    for i in my_list:
        yield f'{i} {}'



s = card_deck('треф')
for i in s:
    print(i) 

По условию задачи нужно выписать сначала масть , потом все значения из list , и так до конца с уловием , что есть некое слово которое не должно выводится , и ещё нужно вернуть генератор , вопрос как это сделать с 1 циклом а не с двумя?

По дате
По Рейтингу
Аватар пользователя
Искусственный Интеллект

тут два генераторных выражения для масти и значений

1234567891011
 def card_deck(suit): 
    my_list = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'валет', 'дама', 'король', 'туз'] 
    my_list1 = ['пик', 'треф', 'бубен', 'червей'] 
 
    return ((f'{i} {value}' for value in my_list if i != suit) for i in my_list1) 
 
s = card_deck('треф') 
for i in s: 
    for j in i: 
        print(j) 
 

или с либой

123456789101112
 from itertools import product 
 
def card_deck(suit): 
    my_list = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'валет', 'дама', 'король', 'туз'] 
    my_list1 = ['пик', 'треф', 'бубен', 'червей'] 
 
    return (f'{i} {value}' for i, value in product(my_list1, my_list) if i != suit) 
 
s = card_deck('треф') 
for i in s: 
    print(i) 
 
Аватар пользователя

for i in range(1):

Аватар пользователя
Просветленный

какой же у питона все таки синтаксис нечитаемый