2014-03-19 3 views
5

) 배열의 요소가 기본 배열의 하위 집합이면 PASS를 인쇄하고, 그렇지 않으면 FAIL을 대신 인쇄하는 스크립트를 작성하고 있습니다.간단한 if-else 문 (Python

작동하려면 아래의 if-else 문에 무엇을 추가해야합니까?

a = [1,2,3,4,5] 
b = [1,2] 
c = [1,9] 

# The Passing Scenario 

if (i in a for i in b): 
print "PASS" 
else: 
print "FAIL" 

# The Failing Scenario 

if (i in a for i in c): 
print "PASS" 
else: 
print "FAIL" 
+1

같은 설정 작업을 수행 할 수 있습니다 , 2]'그렇다면'a'의''subset '이라고 생각하십니까? –

+0

Tim, 맞아. 하위 코드의 유효성을 확인하기 위해 내 코드에서 허점을 지적했다. 내가 실수하지 않는다면, 수학에서 d는 a의 부분 집합이 아닙니다. 그러나 내 대본을 위해, 나는 그것을 여전히 "하위 집합"으로 간주 할 것이다. 예상대로 결과에 영향을 미치지 않습니다. 귀하의 알림을 주셔서 감사합니다 :) – user3431399

답변

3

all을 사용하십시오. set의와

# the passing scenario 
if all(i in a for i in b): 
    print 'PASS' 
else: 
    print 'FAIL' 

# the failing scenario 
if all(i in a for i in c): 
    print 'PASS' 
else: 
    print 'FAIL' 
+0

고마워, 내 문제를 해결 : D 다른 답변도 유용하지만,이 if-else 구조로 제한됩니다. 모두에게 감사 : D – user3431399

2

, 그것은 쉽게 :

>>> a = [1,2,3,4,5] 
>>> b = [1,2] 
>>> c = [1,9] 
>>> set(b).issubset(set(a)) 
True 
>>> set(c).issubset(set(a)) 
False 
2

이는 D = [1,1 '같은 목록이있을 수이

a = [1,2,3,4,5] 
b, c = [1,2],[1,9] 

print set(b) <= set(a) 
# True 
print set(c) <= set(a) 
# False