Как каждый раз создавать новый список с другим названием при каждом срабатывании цикла for?
На вход программе подается число n, а затем n строк, содержащих целые числа в порядке возрастания. Из данных строк формируются списки чисел. Напишите программу, которая объединяет указанные списки в один отсортированный список с помощью функции quick_merge(), а затем выводит его.
Sample Input 1:
3
1 2 3 4
5 6 7
10 11 17
Sample Output 1:
1 2 3 4 5 6 7 10 11 17
я написал программу и не знаю как генерировать каждый раз новый список с другим названием, чтобы их записывать в созданную функцию при выводе ответа
def merge(*iters):
for it in iters:
yield from it
n = int(input())
for i in range(n):
a = [int(j) for j in input().split()]
print(list(merge(a, b, c)))
Ответы (2 шт):
лучше их всех положить в ещё один список
arr = []
for i in range(n):
arr.append([int(j) for j in input().split()])
print(list(merge(*arr)))
чтобы убрать скобки по краям и запятые то пишите так
print(*list(merge(*arr)))
Если постараться то весь код можно уместить в одну строку
print(*sorted(sum([list(map(int, input().split())) for _ in range(int(input()))], [])))
просто используйте список списков
n = int(input())
data = [list(map(int, input().split())) for i in range(n)]
если решать в лоб, то можно было бы сделать совсем простое решение
def merge():
return sorted(sum([list(map(int, input().split())) for i in range(int(input()))], []))