Рубрики
Без рубрики

Самый питонический способ преобразования ОН Перебировать все элементы в списке ФС, ИСПОЛЬЗУИ В этой статье Показаны простеишие … КАК ПРЕОБРОИТЕЛЬНО

Самый питонический способ преобразования ОН Перебировать все элементы в списке ФС, ИСПОЛЬЗУИ В этой статье Показаны простеишие … КАК ПРЕОБРОИТЕЛЬНО

Автор оригинала: Evgeny Erunov.

Самый питонический способ преобразования ОН Перебировать все элементы в списке ФС, ИСПОЛЬЗУИ

В этой статье показыны простеишие способылы ПРЕОБРАЗОВАНИЯ ОДНОМЕРНОГО Списка , состоящего только из ЧИСЕЛ С Плавающей запятой , в списке ЦЕЛЫХ ЧИСЕЛ Отказ

ПРОБЛЕМА : Дан Список числел с плавающую запятой [1.0, 2.0, 3.0] Отказ КАК ЕГО ПРЕИБРАЗВАТЬ В СПИСОК ЦЕЛЫХ ЧИСЕЛ [1, 2, 3] ?

Способылы неприменами к списку Списков. ПРИ НЕБХОДИМОСТИ МОЖНО Добавить циклы или Определить пользователями.

МЕТОД 1: СПИСОК

Предположим у нас есть Список:

a = [1.1, 1.2, 1.8, 0.5, 5.9, -2.3]

Проверим Тип Элементов Списка:

print(type(a[0]))
# 

Применим ВСТРОЕННУЮ ФУЕНКЦИЯ int, Получим список состоищий из целых чисел:

print([int(a) for a in a])
# [1, 1, 1, 0, 5, -2]

Проверим Тип Элементов Списка:

A = [int(a) for a in a]
print(type(A[0]))
# 

Таким образм, ИСПОЛЬЗУЯ ВСТРЕЕННУЮ ФУЕНКЦИЯ int , Которая, преобразуя вещественное число, делает округлаемое в столону нуля, Однострочным Кодомом Получить новый список целых чисел.

МЕТОД 2: Функция карта

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

Применим к тому же списание «A» Код Ниже:

print(list(map(int, a)))
# [1, 1, 1, 0, 5, -2]

Проверять тип Элементов Полученного Списка Мы не Будем, Так КАК ПРИЗОВЕ ФУНКЦИИ «карта» Передали в нереописанную в методе 1 функЦию ‘int’ в качестве аргумента, азолтат Обернули в Список применения Функции ‘список’.

Метод 3: Функция Вокруг в Определии Списка

Он очень схож с первым, но в отличие от ‘ИНТ’, он не просто отбрасывает дробную часть, а округляет до ближайшего четного целого числа, если дробная часть равна 0,5. Также можно передать в качестве второго аргумента количество знаков после запятой, до которых необходимо округление, по умолчанию это 0, этим мы и воспользуемся:

print([round(a) for a in a])

Проверим Тип Чисел Нового СПИСКА:

D = [round(a) for a in a]
print(type(D[0]))
# 

Как видим из этого пример, есть разные встроенные функкии для дополнительных цели, отличия

МЕТОД 4: Модуль Математика

В этой спсобере мне предлагаю Математика ‘, в котором Будем ИСПОЛЬЗИТЬ ТРИ ФУЕНЦЦИИ Ceil () , пол () , И trunc () Отказ Расспомотрит подробнее кажлый. Синтаксис У Них Одинаковый, Различество в спасобебе Округление.

Применим к изначальному списку:

a = [1.1, 1.2, 1.8, 0.5, 5.9, -2.3]
print([math.ceil(a) for a in a])
# [2, 2, 2, 1, 6, -2]

‘CEIL’ Ouruglyate К БЛИГАЙМУ БОЛЬШЕЕ ЦЕЛОМУ ЧИСЛУ С УЧЕТОМ ЗНАКА ( -2.3 <-2 Выvod buidet true )

Проверим Тип ЧИСЕЛ в полученном виде:

C = [math.ceil(a) for a in a]
print(type(C[0]))
# 

Расспомотримлетующуюфу купить в модуле ‘Math’ – «Этаж», её действо противоположно ‘Ceil’ – OuruglyTy в меньшую стоюку:

print([math.floor(a) for a in a])
# [1, 1, 1, 0, 5, -3]

Проверим тип:

F = [math.floor(a) for a in a]
print(type(F[0]))
# 

Следующая Функция – ‘trunch’, Являет Аналогом ВСТРОЕОЕННОЙ ФУКЦЦИИ ‘INT’ – Просто отбрасывает жестную часть какая она не Была:

print([math.trunc(a) for a in a])
# [1, 1, 1, 0, 5, -2]

И снова проверим тип Чисел Нового Списка:

T = [math.trunc(a) for a in a]
print(type(T[0]))
# 

МЕТОД 5: Numpy

Здесь рассмортры преобразование Списка из ‘INT’ в массов C помощность модуля numpy. Отличие массива от списка – все элементы массива должны быть одного типа, как «плавать» и ‘INT’ Числовые операции с большим объемом данных можно проводить с массивами гораздо быстрее и эффективнее чем со списками..

Превратим наш Первый список ‘A’ Â Массив:

import numpy as np
N = np.array(a, int)

В функцею массив Мы передаем Два аргумента, Имя Списка для окончания

# [ 1  1  1  0  5 -2]

Проверим Тип Элементов:

print(type(N[0]))
# 

В отличии от типа чисел ‘int’ in python в модуле numpy Определины незнаколько инача и расселены на незналько подгрупп. Например, ‘int32’ – это целые числа в диапазоне от -2147483648 до 2147483647 (4-байтовые числа), ‘int64’ – числа от -9223372036854775808 до 9223372036854775807 (8-байтовые числа), также есть различные типы ‘INT’ для 32- И 64-битные операционные системы