列表和整数查询

时间:2009-12-16 18:28:36

标签: python list integer

如果我有一个数字列表而某些可能是否定的,我如何确保列表中的所有数字都是正数?我可以将列表中的项目转换为没有问题的整数。

另一个问题,我想将列表中的项目与整数值进行比较,说“x”并将列表中所有小于x的值相加。

谢谢。

5 个答案:

答案 0 :(得分:4)

如果您有一个数字列表Ns(如果它是一个字符串列表,就像最近询问的几个类似问题一样,每个都必须通过调用{{}来形成一个int或其他任何类型的数字。 1}} [[或int等]],它们的绝对值列表(如果你的意思是“确保”)是

float

如果您的意思是检查是否所有数字都是[abs(n) for n in Ns] ,那么

>= 0

将为您提供一个all(n >= 0 for n in Ns) 值,完全符合该规范。

bool列表的项目总和为

<x

当然,您可以在一次扫描中组合所有这些类型的操作(例如,如果您需要使用sum(n for n in Ns if n < x) 以及检查它是否为abs(n),请检查它是否为< x,总结,无论如何)。

答案 1 :(得分:0)

# input list is named "lst"
pos_list = [int(a) for a in lst if int(a) > 0]
# And num 2 (notice generator is used instead of list)
return sum(a for a in lst if a < x)

答案 2 :(得分:0)

>>>mylist = [1,2,3,-2]
>>>any(item for item in mylist if item < 0)
True
>>>mylist.pop()
-2
>>>any(item for item in mylist if item < 0)
False

回答你的第一个问题。

>>> x = 3
>>> sum(item for item in mylist if item < x)
3

回答你的第二个问题。

答案 3 :(得分:0)

答案/第一部分:

>>> a = [1, 2, -3, 4, 5, 6]
>>> b = [1, 2, 3, 4, 5, 6]

>>> max(map(lambda x: x < 0, a))
False

>>> max(map(lambda x: x < 0, b))
True

或者只使用min

>>> min(a) < 0
True

>>> min(b) < 0
False

第二部分:

>>> x = 3
>>> sum(filter(lambda n: n < x, a))
>>> 0

>>> sum(filter(lambda n: n < x, b))
>>> 3

答案 4 :(得分:0)

如果我理解你的问题,我猜你是因为某些关于函数式编程的课程。

在这种情况下,您可以使用Python中的functional programming tools来完成所要求的内容 特别是,第一个点可以使用filter来解决,而第二个点可以使用map和reduce(或者更好,使用map和sum)。