[PYTHON] 'int'유형의 목록에있는 모든 항목을 테스트하는 방법은 무엇입니까?
PYTHON'int'유형의 목록에있는 모든 항목을 테스트하는 방법은 무엇입니까?
내가 숫자 목록을 가지고 있다고 해봐. 목록의 모든 항목이 int인지 확인하려면 어떻게해야합니까? 나는 주변을 수색했지만, 이것에 관해 무엇인가를 찾을 수 없었다.
for i in myList:
result=isinstance(i, int)
if result == False:
break
작동하지만 매우 추악하고 내 의견으로는 만족스럽지 않습니다. 이 일을하는 데 더 나은 (그리고 더 비옥 한) 방법이 있습니까?
해결법
-
==============================
1.
>>> my_list = [1, 2, 3.25] >>> all(isinstance(item, int) for item in my_list) False >>> other_list = range(3) >>> all(isinstance(item, int) for item in other_list) True >>>
-
==============================
2.다음 진술이 효과가 있습니다. 그것은 builtin과 generator 식을 사용합니다 :
다음 진술이 효과가 있습니다. 그것은 builtin과 generator 식을 사용합니다 :
any(not isinstance(x, int) for x in l)
목록에 int가 없으면 true를 반환합니다. 예 :
>>> any(not isinstance(x, int) for x in [0,12.]) True >>> any(not isinstance(x, int) for x in [0,12]) False
모든 내장 된 사람도 동일한 작업을 수행 할 수 있고, 어떤 사람들은 약간 더 의미가 있다고 주장 할 수도 있습니다 (Dragan의 대답 참조)
all(isinstance(x,int) for x in l)
-
==============================
3.
In [1]: a = [1,2,3] In [2]: all(type(item)==int for item in a) Out[2]: True
-
==============================
4.하나의 접근법은 테스트하는 것이 아니라 주장하는 것입니다. 이것은 프로그램이보다 광범위한 입력을 지능적으로 처리 할 수 있음을 의미합니다. 누군가가 대신 부동 소수점을 전달하면 실패하지 않습니다.
하나의 접근법은 테스트하는 것이 아니라 주장하는 것입니다. 이것은 프로그램이보다 광범위한 입력을 지능적으로 처리 할 수 있음을 의미합니다. 누군가가 대신 부동 소수점을 전달하면 실패하지 않습니다.
int_list = [int(x) for x in int_list]
또는 (제자리에서) :
for i, n in enumerate(int_list): int_list[i] = int(n)
무언가가 변환 될 수 없다면 예외를 던져 버릴 수 있습니다.
-
==============================
5.함수보기
함수보기
def is_int(x): if type(x) == int: return True return def all_int(a): for i in a: if not is_int(i): return False return True
그럼 전화 해.
all_int(my_list) # returns boolean
-
==============================
6.
lst = [1,2,3] lst2 = [1,2,'3'] list_is_int = lambda lst: [item for item in lst if isinstance(item, int)] == lst print list_is_int(lst) print list_is_int(lst2) suxmac2:~$ python2.6 xx.py True False
.... 목록 이해 또는 필터 ()를 사용하는 많은 사람들 중에서 한 가지 해결책
-
==============================
7.비슷한 상황이지만 약간 다른 조건에서 발견되었습니다. 목록의 "정수"가 문자열로 표시되고 목록 요소가 정수로 표시 될 수 있는지 단순히 확인하려는 경우 다음을 사용할 수 있습니다.
비슷한 상황이지만 약간 다른 조건에서 발견되었습니다. 목록의 "정수"가 문자열로 표시되고 목록 요소가 정수로 표시 될 수 있는지 단순히 확인하려는 경우 다음을 사용할 수 있습니다.
all(i.isdigit() for i in myList)
예 :
>>> myList=['1', '2', '3', '150', '500', '6'] >>> all(i.isdigit() for i in myList) True >>> myList2=['1.5', '2', '3', '150', '500', '6'] >>> all(i.isdigit() for i in myList2) False
이것은 모든 요소를 'string'유형으로 할당 한 텍스트 파일의 정수 행에 line.split ()을 사용한 후에 나에게 해당되는 경우입니다.
from https://stackoverflow.com/questions/6009589/how-to-test-if-every-item-in-a-list-of-type-int by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 파이썬에서 간단한 부울 논리를 동적으로 평가하기 (0) | 2018.11.16 |
---|---|
[PYTHON] PHP 스크립트에서 Python 스크립트로 값 전달하기 (0) | 2018.11.16 |
[PYTHON] 전체 페이지를 다운로드하지 않고 웹 페이지가 있는지 확인하는 Python 스크립트? (0) | 2018.11.16 |
[PYTHON] Numpy에서 어떻게 2-D 배열을 압축 할 수 있을까요? (0) | 2018.11.15 |
[PYTHON] 문자열에서 QpushButton을 누르면 QlineEdit에서 텍스트를 가져 오는 방법은 무엇입니까? (0) | 2018.11.15 |