Форум сайта python.su
Из списка нужно вынести кортежи из двух чисел которые в сумме равняются 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]
Офлайн
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))
Офлайн
RomissevdCпасибо! А каким образом можно кортежи со всеми числами 1, 11, 12, 13 из visible?
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)
Офлайн
не совсем понял вопрос?
Офлайн
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 не сработало.
Офлайн
def jqk(visible): a = [] for x in visible: if x in [1, 11, 12, 13] : a.append((x)) return tuple(a)
Офлайн
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)
Офлайн