John Salerno wrote: > I'd like to compare the values in two different sets to test if any of > the positions in either set share the same value (e.g., if the third > element of each set is an 'a', then the test fails). > > I have this: > > def test_sets(original_set, trans_letters): > for pair in zip(original_set, trans_letters): > if pair[0] == pair[1]: > return False > return True > > > zip() was the first thing I thought of, but I was wondering if there's > some other way to do it, perhaps a builtin that actually does this kind > of testing. > > Thanks.
'enumerate' is another possibility: s1 = 'abcd' s2 = 'zzzz' s3 = 'zbzz' s4 = 'zzbz' def are_itemwise_different( L1, L2 ): #if len(L1) != len(L2): return True for idx, value in enumerate(L1): if value == L2[idx]: return False return True #after Peter Otten def are_itemwise_different( L1, L2 ): #if len(L1) != len(L2): return True return True not in ( value == L2[idx] for idx, value in enumerate(L1) ) assert are_itemwise_different(s1,s2) assert not are_itemwise_different(s1,s3) assert are_itemwise_different(s1,s4) def itemwise_intersect( L1, L2 ): #if len(L1) != len(L2): raise for idx, value in enumerate(L1): if value == L2[idx]: yield value assert list(itemwise_intersect(s1,s2)) == [] assert list(itemwise_intersect(s1,s3)) == ['b'] assert list(itemwise_intersect(s1,s4)) == [] Gerard -- http://mail.python.org/mailman/listinfo/python-list