Skip to content Skip to sidebar Skip to footer

Python List Lookup With Partial Match

For the following list: test_list = ['one', 'two','threefour'] How would I find out if an item starts with 'three' or ends with 'four' ? For example, instead of testing membership

Solution 1:

You can use any():

any(s.startswith('three') for s in test_list)

Solution 2:

You could use one of these:

>>> [e for e in test_list if e.startswith('three') or e.endswith('four')]
['threefour']
>>> any(e for e in test_list if e.startswith('three') or e.endswith('four'))
True

Solution 3:

http://www.faqs.org/docs/diveintopython/regression_filter.html should help.

test_list = ['one', 'two','threefour']

deffiltah(x):
  return x.startswith('three') or x.endswith('four')

newlist = filter(filtah, test_list)

Solution 4:

If you're looking for a way to use that in a conditional you could to this:

if [s for s in test_list if s.startswith('three')]:
  # something here forwhen an element exists that starts with'three'.

Be aware that this is an O(n) search - it won't short circuit if it finds a matching element as the first entry or anything along those lines.

Post a Comment for "Python List Lookup With Partial Match"