Программа для чтения 2 списков и вывода чисел из списков, объединенных в обратном порядке

Привет, я пишу программу, в которой пользователь вводит числа для двух разных списков, а программа печатает объединенные списки и сортирует числа в обратном порядке (самый высокий - самый низкий).

Мне удалось написать программу, но мне нужен способ изменить ее, чтобы пользователь вводил список в одну строку, а не в несколько строк, и тогда мой конечный результат не печатается (самый высокий - самый низкий), в настоящее время он печатает только (низкий) высоко)

см. ниже мой код

a=[]
c=[]
n1=int(input("Enter number of elements:"))
for i in range(1,n1+1):
    b=int(input("Enter element:"))
    a.append(b)
n2=int(input("Enter number of elements:"))
for i in range(1,n2+1):
    d=int(input("Enter element:"))
    c.append(d)
new=a+c
new.sort()
print("Sorted list is:",new)

Выход

Enter number of elements:4
Enter element:1
Enter element:3
Enter element:3
Enter element:6
Enter number of elements:3
Enter element:1
Enter element:4
Enter element:5
Sorted list is: [1, 1, 3, 3, 4, 5, 6]

как я могу изменить свой код, чтобы он выглядел так:

list 1 : 1 2 3 4
list 2 : 5 6 7 8
output :[ 8,7,6,5,4,3,2,1]

сортировать в обратном порядке new.sort(reverse=True)

Albin Paul 10.05.2022 06:52
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
1
43
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Чтобы ввести список в одну строку, сделайте что-то вроде

a = [int(i) for i in input("list 1: ").split(" ")]

и, как отметил Альбин Пол в комментариях, используйте

new.sort(reverse=True)

сортировать от высшего к низшему

1.если вы хотите изменить отсортированный массив, который вы можете использовать ниже:

new.sort(reverse=True)
  1. если вы просто хотите изменить список, который вы можете использовать:
new[::-1]#will give you a reverse list

#or else you can use predefined method 
new.reverse()
Ответ принят как подходящий

Это сработает. Вместо этого вы также можете запросить ввод через запятую.

Пример ввода будет выглядеть следующим образом для каждого списка: 1 2 3 4 5

lst1 = input("Enter list of space separated numbers:") # input = `2 1 4 7 5 9`
lst2 = input("Enter list of space separated numbers:")
a = [int(i) for i in lst1.split(' ') if i.isdigit()]
c = [int(i) for i in lst2.split(' ') if i.isdigit()]

new= a + c
new.sort(reverse=True)
print("Sorted list is:",new)

Вы должны добавить базовый элемент управления, который проверяет, являются ли все входные данные положительными целыми числами, такими как are_digits = [c.isdigit() for c in lst1.replace(' ','')], и если all(are_digits) является False, то вы должны попросить повторно ввести список

sound wave 10.05.2022 07:12

@soundwave ОП может добавить проверки, если они ему нужны. Я отредактировал композицию списка, чтобы убедиться, что она захватывает только типы цифр. Спасибо за предложение.

alexpdev 10.05.2022 07:17

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

list1 = input('Enter List 1:  ')
list2 = input('Enter List 2:  ')
list_1 = list1.split()
list_2 = list2.split()
# print list

list_1 = list(map(int, list_1))
list_2 = list(map(int, list_2))

final_list = list_1 + list_2


# 1
print(sorted(final_list, reverse=True))

# 2
final_list.sort(reverse=True)
print(final_list)```

Другие вопросы по теме