Форум сайта python.su
Здравствуйте, хотел бы из таких двух списков:
girls = ['Аня', 'Катя', 'Маша', 'Света'] boys = ['Петя', 'Вася']
['Аня', 'Петя', 'Катя', 'Вася', 'Маша', 'Света']
girls = ['Аня', 'Катя', 'Маша', 'Света'] boys = ['Петя', 'Вася'] names = [] if len(girls) <= len(boys): for i in range(len(boys)): names.extend(girls[i:i+1] + boys[i:i+1]) else: for i in range(len(girls)): names.extend(girls[i:i + 1] + boys[i:i + 1]) print(names) #['Аня', 'Петя', 'Катя', 'Вася', 'Маша', 'Света']
Офлайн
from itertools import zip_longest print ([name for names in zip_longest(girls, boys) for name in names if name]) >>> ['Аня', 'Петя', 'Катя', 'Вася', 'Маша', 'Света'] >>>
[code python][/code]
Офлайн
girls = ['Аня', 'Катя', 'Маша', 'Света'] boys = ['Петя', 'Вася'] out = [] while girls or boys: if girls: out.append(girls.pop(0)) if boys: out.append(boys.pop(0)) print(out) # ['Аня', 'Петя', 'Катя', 'Вася', 'Маша', 'Света']
Офлайн
>>> import itertools >>> >>> def f(seq1, seq2): ... for e1, e2 in itertools.zip_longest(seq1, seq2): ... if e2 is None: ... yield e1 ... else: ... yield e1 ... yield e2 ... >>> girls = ['Аня', 'Катя', 'Маша', 'Света'] >>> boys = ['Петя', 'Вася'] >>> >>> list(f(girls, boys)) ['Аня', 'Петя', 'Катя', 'Вася', 'Маша', 'Света'] >>>
>>> def f(lst1, lst2): ... it1 = iter(lst1) ... it2 = iter(lst2) ... while True: ... e1 = next(it1, None) ... if e1 is None: ... break ... else: ... yield e1 ... e2 = next(it2, None) ... if e2 is not None: ... yield e2 ... >>> >>> girls = ['Аня', 'Катя', 'Маша', 'Света'] >>> boys = ['Петя', 'Вася'] >>> >>> list(f(girls, boys)) ['Аня', 'Петя', 'Катя', 'Вася', 'Маша', 'Света'] >>>
Офлайн
PEHDOMСпасибо!
Офлайн
xam1816Спасибо!
Офлайн
py.user.nextСпасибо!
Офлайн