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 like this:
two in test_list
I want to test it like this:
startswith('three') in test_list
.
How would I accomplish this?
You can use any()
:
any(s.startswith('three') for s in test_list)
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
http://www.faqs.org/docs/diveintopython/regression_filter.html should help.
test_list = ['one', 'two','threefour']
def filtah(x):
return x.startswith('three') or x.endswith('four')
newlist = filter(filtah, test_list)
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 for when 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.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.