python - 是否有 return 最大整数但不是从列表中浮点数的函数

python - is there a function to return the maximum integer but not float from a list

我正在尝试编写一个接受列表的函数,然后 return 列表的长度乘以列表中最大的整数(非浮点数),如果列表不包含整数,它需要 return 一个空字符串。

我一直在尝试使用 max 函数,但我不知道如何只调用最大整数而不是浮点数,或者有没有办法首先对列表进行排序以仅查看整数?

您或许可以使用 if 语句来检查数字是否为整数

我不知道是否有函数但是你可以创建,如果你有一个列表L=[1,2,1.1,5,45,56.4]你可以在循环中测试你的整数,

for i in L:
    if (int(i)=i)

如果它是一个整数,则创建一个新列表并将其排序为较大的列表。

作为一个班轮你可以做:

max([i for i in data if type(i) == int]) 

如果没有 int,这将引发错误,因此您必须捕获它。

如果你需要空字符串,你可以这样做

int_data = [i for i in data if type(i) == int]
if len(int_data) == 0:
    print("")
else:
    print(len(data) * max(int_data))

如果我理解正确你想做什么,这应该有效:

def return_max_times_len(l):
    lst_int = [i for i in l if isinstance(i, int)]
    if len(lst_int) > 0:
        return len(l) * max(lst_int)
    return ""

在这里。

def lili(list: list) -> int:
    if all(isinstance(item, int) for item in list):  # Check if all element in the list are integer
        return len(list) * max(list)
    return None


print(lili([2, 3, 4, 5, 6]))

有什么不懂的可以私信我,我会解释的更清楚。

我认为这可能对您有所帮助:)

def func(lst):
    length = 0
    flag = False
    eps = 0.000001
    max = -inf
    for elem in lst:
        length += 1
        if (abs(elem - int(elem)) <= eps) and (elem >= max):
            max = elem
            flag = True
    if flag:
        print(max * length)
    else:
        print("")

您可以使用以下构造来获取列表中包含的整数的频率

from collections import defaultdict
counts = defaultdict(int)
numbers = [3, 4.5, 6, 3.2, 7.8, 6]

for num in numbers:
    if type(num) == int:
        counts[num] += 1

largest_integer = max(counts)
frequency = counts[largest_integer]

字典 'counts' 将包含列表 'numbers' 中包含的整数的频率。 'counts'的结构如下:

{integer1: times_met, integer2: times_met...}