Перейти к содержимому

List map int input split python что это

  • автор:

Ввод данных на Python

Возникла проблема с вводом данных, до этого не работал на сайте и при вводе мне не понятно как это делать. Вместо стандартного int(input()) я встретил ввод map(int, input().split()) . Объясните пожалуйста.

Отслеживать
48.6k 17 17 золотых знаков 56 56 серебряных знаков 100 100 бронзовых знаков
задан 6 мар 2019 в 17:52
23 1 1 золотой знак 1 1 серебряный знак 3 3 бронзовых знака

Что именно непонятно? input() возвращает строку, split() делит строку по пробелам и выдаёт список, map вызывает указанную функцию для каждого элемента указанного списка и возвращает новый список (точнее итератор). Про всё это вы легко можете прочитать в любой документации и в любом учебнике по Python

6 мар 2019 в 18:00

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

map(int, input().split()) можно использовать в случае, если вводится несколько чисел через разделитель (в данном случае через пробел)

  • input() возвращает строку (например: «1 2 3» )
  • split() преобразует строку в list по разделителю — по умолчанию это пробел (результат: [«1», «2» ,»3″] )
  • map преобразует список в соответствие с функцией — в данном случае int(elem) (результат: [1, 2 , 3]

В результате выполнения кода получится объект map , который хорошо бы еще было обернуть в list ( list(map(. ))

Отслеживать
ответ дан 6 мар 2019 в 18:31
ChocolateSwan ChocolateSwan
814 5 5 серебряных знаков 8 8 бронзовых знаков

Можно еще добавить что list(map(int, input().split())) тоже самое что [int(i) for i in input().split()] . А еще, split без параметров делит не просто по пробелам, а по их множеству: ‘1 2 3’.split() -> [‘1’, ‘2’, ‘3’] , а вот строго по пробелу: ‘1 2 3’.split(» «) -> [‘1’, », », ‘2’, ‘3’] . И еще, просто map удобно использовать если известно количество элементов, например если их 3: a, b, c = map(int, input().split()) , но при желании можно обработать и сколько угодно: a, *b = map(int, input().split()) — первое числор попадет в a , а все остальные как список в b

6 мар 2019 в 18:44
Спасибо, большое
6 мар 2019 в 19:05

Highly active question. Earn 10 reputation (not counting the association bonus) in order to answer this question. The reputation requirement helps protect this question from spam and non-answer activity.

  • python
  • python-3.x

22 сниппета на Python для повседневных задач

В этой статье хотелось бы поделиться 22 фрагментами кода на Python, которые помогут вам в решении повседневных задач.

1. Прием нескольких входных значений, разделенных пробелами

Этот фрагмент кода позволяет принимать сразу несколько значений вводимых данных, которые разделены пробелами. Он пригодится при решении задач на соревнованиях по программированию.

## Прием двух целых чисел в качестве входных данных a,b = map(int,input().split()) print(«a:»,a) print(«b:»,b) ## Прием списка в качестве входных данных arr = list(map(int,input().split())) print(«Input List:»,arr)

2. Одновременный доступ к индексу и значению

Одновременный доступ к индексу и значению в цикле позволяет получить встроенная функция enumerate():

arr = [2,4,6,3,8,10] for index,value in enumerate(arr): print(f»At Index The Value Is -> «) »’Output At Index 0 The Value Is -> 2 At Index 1 The Value Is -> 4 At Index 2 The Value Is -> 6 At Index 3 The Value Is -> 3 At Index 4 The Value Is -> 8 At Index 5 The Value Is -> 10 »’

3. Проверка использования памяти

Этот фрагмент используется для проверки использования памяти объекта:

import sys a = 20 print(sys.getsizeof(a)) #28
4. Проверка существования файла

Важно знать, существуют ли используемые в коде файлы. Python здорово облегчает управление файлами благодаря встроенному синтаксису для чтения и записи файлов:

# Метод перебора import os.path from os import path def check_for_file(): print(«File exists: «,path.exists(«data.txt»)) if __name__==»__main__»: check_for_file() »’ File exists: False »’

5. Вывод уникального идентификатора переменной

Уникальный идентификатор переменной находится с помощью метода id(). Для этого нужно просто передать в метод имя переменной:

a = 20 name = ‘Karl’ deci = 5.5 print(id(a)) # 2557830785936 print(id(name)) # 2557830785956 print(id(deci)) # 2557830785996

6. Вычисление времени выполнения в оболочке

Иногда важно знать время выполнения в оболочке или в блоке кода для получения лучшего алгоритма с минимальным количеством затраченного им времени:

# МЕТОД 1 import datetime start = datetime.datetime.now() «»» CODE «»» print(datetime.datetime.now()-start) # МЕТОД 2 import time start_time = time.time() main() print(f»Total Time To Execute The Code is <(time.time() - start_time)>» ) # МЕТОД 3 import timeit code = »’ ## Фрагмент кода, чье время выполнения подлежит измерению [2,6,3,6,7,1,5,72,1].sort() »’ print(timeit.timeit(stmy = code,number = 1000))

7. Цепочка вызовов функций

В Python есть возможность вызывать несколько функций в одной строке:

def add(a,b): return a+b def sub(a,b): return a-b a,b = 9,6 print((sub if a > b else add)(a, b))
8. Перестановка значений

Быстрый способ поменять местами две переменные без использования дополнительной:

a,b = 5,7 # Метод 1 b,a = a,b # Метод 2 def swap(a,b): return b,a swap(a,b)
9. Калькулятор без if-else

Этот фрагмент кода показывает, как просто написать калькулятор без использования каких-либо условных операторов if-else:

import operator action = < "+" : operator.add, "-" : operator.sub, "/" : operator.truediv, "*" : operator.mul, "**" : pow >print(action[‘*’](5, 5)) # 25
10. Обработка ошибок

В Python, как и в языках Java и C++, имеется способ обработки исключений с помощью блоков try, except и finally:

# Пример 1 try: a = int(input(«Enter a:»)) b = int(input(«Enter b:»)) c = a/b print(c) except: print(«Can’t divide with zero») # Пример 2 try: #если файл не существует, будет выброшено исключение. fileptr = open(«file.txt»,»r») except IOError: print(«File not found») else: print(«The file opened successfully») fileptr.close() # Пример 3 try: fptr = open(«data.txt»,’r’) try: fptr.write(«Hello World!») finally: fptr.close() print(«File Closed») except: print(«Error»)

11. Проверка наличия анаграммы

Анаграмма — это слово, которое образуется путем перестановки букв другого слова, причем каждая буква используется только один раз.

def check_anagram(first_word, second_word): return sorted(first_word) == sorted(second_word) print(check_anagram(«silent», «listen»)) # True print(check_anagram(«ginger», «danger»)) # False

12. Проверка наличия подстрок в строке списка

А вот и задача, с которой мне обычно приходится иметь дело ежедневно: проверять, есть ли в строке подстрока. В отличие от других языков программирования, в Python имеется для этого хорошее ключевое слово:

addresses = [ «12/45 Elm street», ’34/56 Clark street’, ‘56,77 maple street’, ’17/45 Elm street’ ] street = ‘Elm street’ for i in addresses: if street in i: print(i) »’output 12/45 Elm street 17/45 Elm street »’

13. Форматирование строки

Самые важные части кода — это входные данные, логика и выходные данные. Все три части требуют некоторого форматирования при написании кода для получения лучших и более удобных для восприятия человеком выходных данных. В Python имеется целый ряд методов форматирования строки.

name = «Abhay» age = 21 ## МЕТОД 1: конкатенация print(«My name is «+name+», and I am «+str(age)+ » years old.») ## МЕТОД 2: форматированные строки (F-строки в Python 3+) print(f»My name is , and I am years old») ## МЕТОД 3: join print(».join([«My name is «, name, «, and I am «, str(age), » years old»])) ## МЕТОД 4: оператор модуля print(«My name is %s, and I am %d years old.» % (name, age)) ## МЕТОД 5: format (Python 2 и 3) print(«My name is <>, and I am <> years old».format(name, age))Списки

14. Сортировка списка строк

Этот фрагмент кода пригодится, например при упорядочении всех имен студентов в списке:

list1 = [«Karl»,»Larry»,»Ana»,»Zack»] # Метод 1: sort() list1.sort() # Метод 2: sorted() sorted_list = sorted(list1) # Метод 3: метод перебора size = len(list1) for i in range(size): for j in range(size): if list1[i] < list1[j]: temp = list1[i] list1[i] = list1[j] list1[j] = temp print(list1)

15. Генератор списков с If и Else

А этот фрагмент кода будет очень полезен при проведении фильтрации структуры данных на основе некоторых условий:

## List Comprehension with if and else [«Divided by 5″ if i%5=0 else i for i in range(1,20)] ### FizzBuzz Implementation Threw the same [‘FizzBuzz’ if i%3=0 and i%5=0 else ‘Fizz’ if i%3=0 else ‘Buzz’ if i%5=0 else i for i in range(1,20)] »’output [1, 2, ‘Fizz’, 4, ‘Buzz’, ‘Fizz’, 7, 8, ‘Fizz’, ‘Buzz’, 11, ‘Fizz’, 13, 14, ‘FizzBuzz’, 16, 17, ‘Fizz’, 19] »’

16. Сложение элементов двух списков

Допустим, у вас есть два списка, которые надо объединить в один, суммировав их элементы. Это пригодится, например в таком сценарии:

maths = [59, 64, 75, 86] physics = [78, 98, 56, 56] # Метод перебора list1 = [ maths[0]+physics[0], maths[1]+physics[1], maths[2]+physics[2], maths[3]+physics[3] ] # Генератор списков list1 = [x + y for x,y in zip(maths,physics)] # Использование методов map import operator all_devices = list(map(operator.add, maths, physics)) # Использование библиотеки Numpy import numpy as np list1 = np.add(maths,physics) »’Output [137 162 131 142] »’

17. Самые часто встречающиеся в списке

Этот метод возвращает элементы, появляющиеся в списке наиболее часто:

def most_frequent(nums): return max(set(nums), key = nums.count)
18. Возведение в квадрат всех чисел в заданном диапазоне

В этом фрагменте для нахождения квадрата каждого целого числа в заданном диапазоне прибегнем к помощи встроенной функции itertools:

# МЕТОД 1 from itertools import repeat n = 5 squares = list(map(pow, range(1, n+1), repeat(2))) print(squares) # МЕТОД 2 n = 6 squares = [i**2 for i in range(1,n+1)] print(squares) «»»Output [1, 4, 9, 16, 25] «»»

19. Поиск дублей

Эти фрагменты кода позволяют проверить, есть ли в списке повторяющиеся значения:

def has_duplicates(lst): return len(lst) ≠ len(set(lst)) x = [1,2,2,4,3,5] y = [1,2,3,4,5] has_duplicates(x) # True has_duplicates(y) # False

20. Преобразование двух списков в словарь

Здесь используются следующие методы:

list1 = [‘karl’,’lary’,’keera’] list2 = [28934,28935,28936] # Метод 1: zip() dictt0 = dict(zip(list1,list2)) # Метод 2: генераторы словарей dictt1 = # Метод 3: использование цикла For (не рекомендуется) tuples = zip(list1, list2) dictt2 = <> for key, value in tuples: if key in dictt2: pass else: dictt2[key] = value print(dictt0, dictt1, dictt2, sep = «\n»)

21. Сортировка списка словарей

Бывают задачи, в которых требуется упорядочить список словарей, чтобы получить с помощью ключа отсортированный в определенном порядке список:

dict1 = [ <"Name":"Karl", "Age":25>, , ] ## Использование sort() dict1.sort(key=lambda item: item.get(«Age»)) # Сортировка списка с помощью itemgetter from operator import itemgetter f = itemgetter(‘Name’) dict1.sort(key=f) # Функция sorted для итерируемых элементов dict1 = sorted(dict1, key=lambda item: item.get(«Age»)) »’Output [, , ] »’

22. Объединение двух словарей

А этот фрагмент кода пригодится при работе с базами данных и файлами JSON, когда нужно объединить данные из разных файлов или таблиц в общий файл. Объединение двух словарей таит в себе ряд опасностей, например возможность появления повторяющихся ключей. К счастью, у нас есть решения и для этого:

basic_information = academic_information = details = dict() ## Объединяет словари ## Метод генераторов словарей details = print(details) ## Распаковывание словарей details = <**basic_information ,**academic_information>print(details) ## Метод копирования и обновления details = basic_information.copy() details.update(academic_information) print(details)

В конце статьи хочу сказать, что еще больше полезной и нужной информации вы найдете в моём Telegram-канале. Подпишитесь, мне будет очень приятно.

Что это значит? a, b = map ( int, input().split() )

Это значит, что когда программа будет запущена и её выполнение дойдёт до этой строки, тебе надо будет ввести к клавиатуры два целых числа (в одной строке, через пробел, без каких-то дополнительных символов) и нажать Enter. А уже программа запишет введённые тобой числа в переменные a и b.

кот толстыйУченик (92) 5 лет назад

Остальные ответы

Приглашение к вводу двух целых чисел с именами a, b

Программирование в «Эврике»

Python (читается как «Пайтон» а не «питон») — скриптовый язык, разработанный Гвидо ван Россумом в качестве простого языка, легкого в изучении новичку.

В наше время Пайтон – широко распространыенынй язык, который используется во многих областях:
— Разработка прикладного ПО;
— Разработка web-приложений (мощнейший Application-сервер Zope и разработанная на его основе CMS Plone, на основе которой работает например сайт ЦРУ, и масса фреймворков для быстрой разработки приложений Plones, Django, TurboGears и многие другие);
— Использование в качестве встраиваемого скриптового языка во многих играх, и не только (в офисном пакете OpenOffice.org, 3d редакторе Blender, СУБД Postgre);
— Использование в научных рассчетах (с пакетами SciPy и numPy для расчетов и PyPlot для рисования графиков Python становится практически сравним с пакетами типа MatLab).

И это конечно далеко не полный список проектов, использующих этот замечательный язык.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *