LINUX.ORG.RU

python:списки


0

1

Bizun твоя задача, например, решается так:

>>> x = [1, 2, 3]
>>> y = [4, 5, 6]
>>> zipped = zip(x, y)
>>> zipped
[(1, 4), (2, 5), (3, 6)]

А читать документацию надо внимательней%)

★★★★★
Ответ на: комментарий от Deleted

И таки тебе правильно сказали про язабан, так как похоже ты нихрена не изучаешь инструмент, который использууешь

pylin ★★★★★
() автор топика

На перлике с костылями можно было сделать как-то так:

@1 = qw/ 1 2 3 4 5/;
@2 = qw/ 6 7 8 9 0/;
while (true) {
	print "<$1[0]>:<$2[0]>, ";
	shift @1;
	shift @2;
	if (@1 == false and @2 == false) {
		last
	}
}
anonymous
()

Чтобы было без лишней запятой, код может быть таким:

a = [1,2,3]
b = [4,5,6]
print ", ".join( ["<%s:%s>"%(a1,b1) for a1,b1 in zip(a,b) ] )

anatoly
()

В нормальном питоне zip возвращает генератор

anonymous
()

Для списков разной длины есть такой фокус.

>>> map(None, range(4), range(5))
[(0, 0), (1, 1), (2, 2), (3, 3), (None, 4)]

Yur4eg ★★
()
Ответ на: комментарий от anatoly

«<%s:%s>»%(a1,b1)

документация рекомендует format

x0r ★★★★★
()
Ответ на: комментарий от anatoly

Петущёк

', '.join(map('<{}>:<{}>'.format, [1, 2, 3], [4, 5, 6]))

anonymous
()

В нормальных языках это выглядит так:

(-<> #(format "<%d>: <%d>" %1 %2)
     (map [1 2 3] [4 5 6])
     (join ", " <>))
anonymous
()
Ответ на: комментарий от Yur4eg

Есть же itertools.zip_longest (izip_longest во втором питоне), делающий то же самое.

x3al ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.