Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 22, 2016 21:11:12

ProPall
Зарегистрирован: 2016-10-10
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывести кортежи из двух чисел сумма которых равняется 11

Из списка нужно вынести кортежи из двух чисел которые в сумме равняются 11. Если таких нет, то должен возвращать пустой кортеж. Я написал код, но он выводит не все возможные пары, а только одну.

def add_to_11(visible):
for x in visible:
for y in visible:
p = x+y
if p == 11:
a = (x,y)

return a
visible = [5,7,5,6,7,10,1]

Офлайн

#2 Ноя. 22, 2016 21:32:42

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

Вывести кортежи из двух чисел сумма которых равняется 11

 def add_to_11(visible):
    res = []
    for x in visible:
        visible = visible[1:]
        for y in visible:
            p = x+y
            if p == 11:
                res.append((x,y))
    return tuple(res)
v = [5,7]
print(add_to_11(v))
v = [5,7,5,6,7,10,1]
print(add_to_11(v))

Офлайн

#3 Ноя. 22, 2016 21:44:46

ProPall
Зарегистрирован: 2016-10-10
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывести кортежи из двух чисел сумма которых равняется 11

Romissevd
def add_to_11(visible):
res =
for x in visible:
visible = visible
for y in visible:
p = x+y
if p == 11:
res.append((x,y))
return tuple(res)
Cпасибо! А каким образом можно кортежи со всеми числами 1, 11, 12, 13 из visible?

Офлайн

#4 Ноя. 22, 2016 21:47:41

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

Вывести кортежи из двух чисел сумма которых равняется 11

не совсем понял вопрос?

Офлайн

#5 Ноя. 22, 2016 21:51:52

ProPall
Зарегистрирован: 2016-10-10
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывести кортежи из двух чисел сумма которых равняется 11

Romissevd
не совсем понял вопрос?
def jqk(visible):
a = []
for x in visible:
if x == 1 :
a.append(x)
if x == 11 :
a.append(x)
if x == 13 :
a.append(x)
if x == 12 :
a.append(x)

return tuple(a)
[/сode]
Как-то так, только пробовал через or не сработало.

Офлайн

#6 Ноя. 22, 2016 22:08:24

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

Вывести кортежи из двух чисел сумма которых равняется 11

 def jqk(visible):
    a = []
    for x in visible:
        if x in [1, 11, 12, 13] :
            a.append((x))
    return tuple(a)

Офлайн

#7 Ноя. 23, 2016 00:13:32

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9993
Репутация: +  857  -
Профиль   Отправить e-mail  

Вывести кортежи из двух чисел сумма которых равняется 11

ProPall
Из списка нужно вынести кортежи из двух чисел которые в сумме равняются 11. Если таких нет, то должен возвращать пустой кортеж.
  
>>> lst = [5, 7, 5, 6, 7, 10, 1]
>>> 
>>> out = tuple((i, j) for i in lst for j in lst if i + j == 11)
>>> out
((5, 6), (5, 6), (6, 5), (6, 5), (10, 1), (1, 10))
>>> 

  
>>> lst = [5, 7]
>>> 
>>> out = tuple((i, j) for i in lst for j in lst if i + j == 11)
>>> out
()
>>> 



Отредактировано py.user.next (Ноя. 23, 2016 00:14:49)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version