яндекс
  • 1
    Ввод и вывод данных
    • Задачи
  • 2
    Условия
    • Задачи
  • 3
    Цикл for
    • Задачи
  • 4
    Строки
    • Задачи
  • 5
    Цикл while
    • Задачи
  • 6
    Списки
    • Задачи
  • 7
    Двумерные массивы
    • Задачи
  • 8
    Словари
    • Задачи
  • 9
    Множества
    • Задачи
  • 10
    Функции и рекурсия
    • Задачи
  • к

Занятие 6. Списки

Задача «Преобразование строки в список целых чисел»

Уровень сложности:

иконка человека красный иконка человека белая иконка человека зеленая Pythonlib
Напишите программу, которая принимает строку чисел, разделённых пробелами, и преобразует её в список целых чисел.
 
Пример:
Input:
            "1 2 3 4 5"
Output:
            [1, 2, 3, 4, 5]
 
Подсказка
В Python можно создать список из строки несколькими способами, в зависимости от формата исходной строки.
# Исходная строка
input_string = "1 2 3 4 5"
# Разделение строки на подстроки
string_list = input_string.split()
# Преобразование каждой подстроки в целое число
int_list = [int(num) for num in string_list]
print(int_list)  # Вывод: [1, 2, 3, 4, 5]
# можно сократить все в одну строку int_list = [int(num) for num in input_string.split()]
Можно так же использовать функцию map:
# Исходная строка
input_string = "1 2 3 4 5"
# Разделение строки на подстроки и преобразование каждой подстроки в целое число с использованием map
int_list = list(map(int, input_string.split()))
print(int_list)  # Вывод: [1, 2, 3, 4, 5]
input_string.split() - превращает строку в массив, разделяя эллементы пробелом, но при этом они по прежнему остаются строкой "1 2 3 4 5"- ["1","2","3","4","5"].
map() - функция, которая применяет какую либо функцию, ко всем эллементам списка, в нашем случае map(int,["1","2","3","4","5"]) применяет функцию int() ко всем эллементам нашего массива и мы получаем  - [1,2,3,4,5], но проблема в том, что мы получаем не список и по этому нам надо его преобразовать в список.
list() - преобразовывает наш обьект в список и по итогу мы получим из строки "1 2 3 4 5", список [1,2,3,4,5]
 
Методы списков
Списки в Python имеют множество встроенных методов для работы с элементами. Вот несколько наиболее часто используемых:
index(): возвращает индекс первого элемента, равного указанному значению
count(): возвращает количество элементов, равных указанному значению
sort(): сортирует список на месте
reverse(): переворачивает список на месте
copy(): создает копию списка
numbers = [1, 4, 5, 6, 7, 4, 3, 2]

# Поиск индекса элемента
index_of_4 = numbers.index(4)
print(index_of_4)  # Вывод: 1

# Подсчет количества элементов
count_of_4 = numbers.count(4)
print(count_of_4)  # Вывод: 2

# Сортировка списка
numbers.sort()
print(numbers)  # Вывод: [1, 2, 3, 4, 4, 5, 6, 7]

# Переворот списка
numbers.reverse()
print(numbers)  # Вывод: [7, 6, 5, 4, 4, 3, 2, 1]

# Создание копии списка
numbers_copy = numbers.copy()
print(numbers_copy)  # Вывод: [7, 6, 5, 4, 4, 3, 2, 1]
 
Удаление элементов из списка
Вы можете удалять элементы из списка несколькими способами:
remove(): удаляет первый найденный элемент, равный указанному значению
pop(): удаляет элемент по указанному индексу и возвращает его (если индекс не указан, удаляет и возвращает последний элемент)
del(): удаляет элемент по индексу или весь срез
numbers = [1, 10, 2, 3, 4, 5, 6, 7]

# Удаление элемента по значению
numbers.remove(10)
print(numbers)  # Вывод: [1, 2, 3, 4, 5, 6, 7]

# Удаление и получение элемента по индексу
element = numbers.pop(2)
print(element)  # Вывод: 3
print(numbers)  # Вывод: [1, 2, 4, 5, 6, 7]

# Удаление элемента по индексу с помощью del
del numbers[1]
print(numbers)  # Вывод: [1, 4, 5, 6, 7]

# Удаление нескольких элементов с помощью среза
del numbers[1:3]
print(numbers)  # Вывод: [1, 6, 7]
 
Генераторы списков
Генераторы списков позволяют создавать списки по определенному правилу в одной строке кода:
# Создание списка квадратов чисел от 0 до 9
squares = [x**2 for x in range(10)]
print(squares)  # Вывод: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

# Создание списка четных чисел от 0 до 9
evens = [x for x in range(10) if x % 2 == 0]
print(evens)  # Вывод: [0, 2, 4, 6, 8]

# Создание списка из ввода
evens = [input() for x in range(3)]

# Создание списка из четных чисел больше 5 и 0 если число не четное
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
filtered_numbers = [x if x % 2 == 0 else 0 for x in numbers if x > 5]
print(filtered_numbers)  # Вывод: [6, 0, 8, 0, 10]

# Создание списка из четных чисел и 0 если число не четное
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
filtered_numbers = [x if x % 2 == 0 else 0 for x in numbers if x > 5]
print(filtered_numbers)  # Вывод: [0, 2, 0, 4, 0, 6, 0, 8, 0, 10]
 
Функция zip()
С помощью функции zip(), можно обратотать сразу 2 массива за один цикл, в качестве аргументов указываем массивы.
numbers = [4, 6, 8]
names = ["Даниил", "Светлана", "Валя"]
for name, number in zip(names, numbers):
	print(name, number)
# Вывод: Даниил 4
# Вывод: Светлана 6
# Вывод: Валя 8
Solution
Входные данные
Выходные данные

Тесты

2 3 6 1 1
2 3 6 1 1
2 3 6 1 1
2 3 6 1 1
2 3 6 1 1
2 3 6 1 1

🎉 Поздравляем! 🎉

Ты отлично справился с задачей! Это был непростой вызов, но ты нашёл правильное решение. Ты на шаг ближе к мастерству в программировании! Продолжай в том же духе, ведь каждый пройденный этап делает тебя ещё сильнее.

AD

Реклама

red-snake blue-snake green-snake

Запускаем ваш код...