두 세트의 변수를 비교하고 같지 않으면 무언가를 수행하는 더 비단뱀 적이거나 효율적인 방법은 무엇입니까? 예를 들어, 이것은 작동하지만 여러 if
문장 보다 더 나은 방법이 있다고 생각 합니까?
#Var set A
a=1
b=5
c=6
d=10
e=15
#Var set B
aa=2
bb=5
cc=6
dd=10
ee=14
#comparison code
if a == aa:
#do something
if b == bb:
#do something
if c == cc:
#do something
if d == dd:
#do something
if e == ee:
#do something
내 실제 코드에는 약 50 개의 if 문이 필요하므로보다 효율적인 방법을 찾고 있습니다. 감사!
편집하다
일부 사람들이 이미 답변했기 때문에 위에 원본 코드를 남겼지 만 #do something
다른 코드인지 동일한 코드 인지 확신 할 수 없었습니다 (혼란을 드려 죄송합니다). #do something
은 다르다. 아래는 내가 달성하려는 작업을 더 잘 보여줍니다.
#Var set A
a=1
b=5
c=6
d=10
e=15
#Var set B
aa=2
bb=5
cc=6
dd=10
ee=14
#comparison code
if a == aa:
a = 'match'
if b == bb:
b = 'match'
if c == cc:
c = 'match'
if d == dd:
d = 'match'
if e == ee:
e = 'match'
항목 쌍을 비교하려는 경우 다음 zip
을 사용하여 쌍을 만들 수 있습니다 .
for left, right in zip([a,b,c,d,e],[aa,bb,cc,dd,ee]):
if left == right:
# a == aa, b == bb, etc.
"무언가"가 매번 같지 않다면 zip에 대한 세 번째 인수로 콜백을 추가합니다.
for left, right, fn in zip([a,b,c,d,e],[aa,bb,cc,dd,ee],[fa,fb,fc,fd,fe]):
if left == right:
fn(left, right) # Assumes fa takes a and aa as arguments, etc
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다