Пример: выводятся подобные большие числа:
5263157894736.632 52631578947368.21 526315789473684.0 5263157894736842.0 5.2631578947368424e+16 5.263157894736842e+17
5263157894736.632 52631578947368.21 526315789473684.0 5263157894736842.0 5.2631578947368424e+16 5.263157894736842e+17
lst = [5263157894736.632, 52631578947368.21, 526315789473684.0, 5263157894736842.0, 5.2631578947368424e+16, 5.263157894736842e+17] for i in lst: if i.is_integer(): print(i)
TortЭто преобразование в целое ведь? Мне нужно именно отобрать целое число
> вывести только целое число>>> s = 1.5>>> int(s)1

python_new
Tort
> вывести только целое число>>> s = 1.5>>> int(s)1
Это преобразование в целое ведь? Мне нужно именно отобрать целое число
>>> filter(float.is_integer, map(float, [1., 2, '3.33', 4.5, 5.67, '6.'])) [1.0, 2.0, 6.0]
bw
Влезу я и сюда, со своей функциональщиной
filter(lambda x: not O.itemgetter(0)(math.modf(x)), [5.23e+5, 2, 3, 2.5])
>>> import math >>> import itertools as I >>> import operator as O >>> I.imap(O.itemgetter(1), I.ifilterfalse(O.itemgetter(0), I.imap(math.modf, [5.23e+5, 2, 3, 2.5]))) <itertools.imap object at ...> >>> list(_) [523000.0, 2.0, 3.0]
bwэто нарушает pep8 (пиши модули маленькими буквами)>>> import itertools as I >>> import operator as O
bwпоэтому вот это читается как “какой-то класс O имеет метод itemgetter”O.itemgetter(0)