목록의 모든 값이 특정 값보다 큰지 확인합니다.
my_list1 = [30,34,56]
my_list2 = [29,500,43]
목록의 모든 값이 >= 30인지 확인하려면 어떻게 해야 합니까?my_list1
효과가 있어야 합니다.my_list2
해서는 안됩니다.
내가 생각할 수 있는 유일한 것은 다음과 같습니다.
boolean = 0
def func(ls):
for k in ls:
if k >= 30:
boolean = boolean + 1
else:
boolean = 0
if boolean > 0:
print 'Continue'
elif boolean = 0:
pass
2016년 업데이트:
나중에 생각해보면, 속도가 실제로 중요한 대규모 데이터셋을 처리하고 활용한 후numpy
...나는 이렇게 할 것입니다.
>>> my_list1 = [30,34,56]
>>> my_list2 = [29,500,43]
>>> import numpy as np
>>> A_1 = np.array(my_list1)
>>> A_2 = np.array(my_list2)
>>> A_1 >= 30
array([ True, True, True], dtype=bool)
>>> A_2 >= 30
array([False, True, True], dtype=bool)
>>> ((A_1 >= 30).sum() == A_1.size).astype(np.int)
1
>>> ((A_2 >= 30).sum() == A_2.size).astype(np.int)
0
다음과 같은 작업을 수행할 수도 있습니다.
len([*filter(lambda x: x >= 30, my_list1)]) > 0
제너레이터 식과 함께 함수를 사용합니다.
>>> my_list1 = [30, 34, 56]
>>> my_list2 = [29, 500, 43]
>>> all(i >= 30 for i in my_list1)
True
>>> all(i >= 30 for i in my_list2)
False
이 테스트는 30 이상에 대해 수행되며, 그렇지 않은 경우에는my_list1
역시 시험에 통과하지 못할 것입니다.
함수에서 이 작업을 수행하려면 다음을 사용합니다.
def all_30_or_up(ls):
for i in ls:
if i < 30:
return False
return True
예를 들어 30 미만의 값이 있음을 증명하는 값을 찾자마자 반환합니다.False
, 그리고 돌아오세요True
그 반대의 증거를 찾지 못했다면 말입니다
마찬가지로 이 함수를 사용하여 적어도 하나의 값이 조건과 일치하는지 검정할 수 있습니다.
...당신이 사용할 수 없는 이유가 무엇이든min()
?
def above(my_list, minimum):
if min(my_list) >= minimum:
print "All values are equal or above", minimum
else:
print "Not all values are equal or above", minimum
이게 정확히 당신이 원하는 것인지는 모르겠지만 엄밀히 말하면 당신이 요구한 것은...
내장된 기능이 있습니다.all
:
all (x > limit for x in my_list)
모든 숫자보다 큰 값을 제한합니다.
사용가능all()
:
my_list1 = [30,34,56]
my_list2 = [29,500,43]
if all(i >= 30 for i in my_list1):
print 'yes'
if all(i >= 30 for i in my_list2):
print 'no'
여기에는 30 이상의 숫자가 포함되며, 엄격하게 30을 초과하는 것은 아닙니다.
np.sum, np.min 및 모든 것을 사용하는 것 사이의 전체 승자는 대규모 배열의 속도 측면에서 np.min인 것으로 보입니다.
N = 1000000
def func_sum(x):
my_list = np.random.randn(N)
return np.sum(my_list < x )==0
def func_min(x):
my_list = np.random.randn(N)
return np.min(my_list) >= x
def func_all(x):
my_list = np.random.randn(N)
return all(i >= x for i in my_list)
(나는 np.array 정의를 함수 안에 넣어야 합니다. 그렇지 않으면 np.min 함수는 값을 기억하고 시간에 따라 속도를 테스트할 때 다시 계산을 하지 않습니다.)
"모두"의 성능은 기준을 만족하지 않는 첫 번째 요소가 언제 발견되는지, np.sum이 약간의 연산을 수행해야 하는지, np.min이 일반적인 경우 계산 측면에서 가장 가볍습니다.
기준이 거의 즉시 충족되고 모든 루프가 빠르게 종료될 때 모든 함수는 np.min을 약간 초과하여 승리합니다.
>>> %timeit func_sum(10)
10 loops, best of 3: 36.1 ms per loop
>>> %timeit func_min(10)
10 loops, best of 3: 35.1 ms per loop
>>> %timeit func_all(10)
10 loops, best of 3: 35 ms per loop
하지만 "모든"이 모든 포인트를 통과해야 할 때, 그것은 확실히 훨씬 더 나쁘고, np.min이 이깁니다.
>>> %timeit func_sum(-10)
10 loops, best of 3: 36.2 ms per loop
>>> %timeit func_min(-10)
10 loops, best of 3: 35.2 ms per loop
>>> %timeit func_all(-10)
10 loops, best of 3: 230 ms per loop
하지만 사용.
np.sum(my_list<x)
매우 유용할 수 있습니다. x 아래에 몇 개의 값이 있는지 알고 싶습니다.
numpy array와 모든 기능을 기반으로 하는 솔루션:
my_list1 = [30, 34, 56]
my_list2 = [29, 500, 43]
#
import numpy as np
all(np.array(my_list1)>=30)
Output: True
all(np.array(my_list2)>=30)
Output: False
다음을 수행할 수 있습니다.
def Lists():
my_list1 = [30,34,56]
my_list2 = [29,500,43]
for element in my_list1:
print(element >= 30)
for element in my_list2:
print(element >= 30)
Lists()
이렇게 하면 30보다 큰 값은 True로, 작은 값은 False로 반환됩니다.
저는 이 기능을 씁니다.
def larger(x, than=0):
if not x or min(x) > than:
return True
return False
그리고나서
print larger([5, 6, 7], than=5) # False
print larger([6, 7, 8], than=5) # True
print larger([], than=5) # True
print larger([6, 7, 8, None], than=5) # False
min()의 빈 목록은 ValueError를 상승시킵니다.그래서 덧붙였어요.if not x
컨디션이 좋은
a = [[a, 2], [b, 3], [c, 4], [d, 5], [a, 1], [b, 6], [e, 7], [h, 8]]
위에서부터 이것이 필요합니다.
a = [[a, 3], [b, 9], [c, 4], [d, 5], [e, 7], [h, 8]]
a.append([0, 0])
for i in range(len(a)):
for j in range(i + 1, len(a) - 1):
if a[i][0] == a[j][0]:
a[i][1] += a[j][1]
del a[j]
a.pop()
언급URL : https://stackoverflow.com/questions/20229822/check-if-all-values-in-list-are-greater-than-a-certain-number
'code' 카테고리의 다른 글
콘솔2를 파워셸과 함께 사용할 수 있습니까? (0) | 2023.10.20 |
---|---|
파일 이름에 대괄호 [ ]로 파일을 복사하고 * 와일드카드를 사용합니다. (0) | 2023.10.20 |
대리 키가 사용되는 경우 테이블에 삽입 (0) | 2023.10.20 |
Android Studio : Run 또는 Debug 전에 APK를 자동으로 제거(또는 adb 명령 실행)하는 방법? (0) | 2023.10.20 |
자바스크립트 get element by name (0) | 2023.10.20 |