On Wed, 1 Jun 2016 12:22 am, Fillmore wrote: > > My problem. I have lists of substrings associated to values: > > ['a','b','c','g'] => 1 > ['a','b','c','h'] => 1 > ['a','b','c','i'] => 1 > ['a','b','c','j'] => 1 > ['a','b','c','k'] => 1 > ['a','b','c','l'] => 0 # <- Black sheep!!! > ['a','b','c','m'] => 1 > ['a','b','c','n'] => 1 > ['a','b','c','o'] => 1 > ['a','b','c','p'] => 1
Are the first three items always the same? If so, they're pointless, and get rid of them. 'g' => 1 'h' => 1 'i' => 1 ... is best stored as a dict. If not, well, does 'l' *always* represent 0? In other words: ['a','b','c','l'] => 0 ['a','b','d','l'] => 0 ['x','y','z','l'] => 0 ... then it sounds like you need a dict storing each letter individually: d = {'a': 1, 'b': 1, 'c': 1, 'l': 0} for letter in ['a','b','c','l']: if d[letter] == 0: print("Black sheep") break which can be written more compactly as: if not all(d[letter] for letter in 'abcl'): print("Black sheep") If your items actually are letters, then you can reduce the fiddly typing with something a bit easier: # instead of # d = {'a': 1, 'b': 1, 'c': 1, 'l': 0} letters = 'abcdefghijklmno' bits = '111111111110111' d = {k: int(b) for k, b in zip(letters, bits)} -- Steven -- https://mail.python.org/mailman/listinfo/python-list