Вывести список списков, используя * (оператор раскрытия) в одну строку кода - PullRequest
1 голос
/ 21 января 2020

Я пытаюсь напечатать список lst , используя одну строку кода

lst = [("A",23),("B",45),("C",88)]

print(*lst, sep="\n")

Вывод выглядит так:

('A', 23)
('B', 45)
('C', 88)

Я ожидаю, что

A 23
B 45
C 88

Однако этого можно достичь с помощью следующего кода

for i in range(len(lst)):
    print(*lst[i], sep=" ")

Но я не хочу использовать «для l oop», а использовать * оператор или любую другую технику для выполнения sh в одной строке кода

Ответы [ 2 ]

1 голос
/ 21 января 2020

Вы можете сделать это в одну строку следующим образом:

print('\n'.join('{} {}'.format(*tup) for tup in lst))
1 голос
/ 21 января 2020

Вы можете достичь этого в одной строке кода, но это включает в себя понимание списка (которое вы можете считать for l oop):

print(*[' '.join([l[0], str(l[1])]) for l in lst], sep="\n")

Вывод:

A 23
B 45
C 88

Обратите внимание, что нам нужно использовать str для преобразования второго значения в кортежах l в строку для join.

...