Python - match a word in a string with a list of strings

后端 未结 6 2139
北恋
北恋 2021-01-25 22:20

I\'m new to python and I was wondering how string comparison is done

Let\'s say I have a list of strings containing state names like

states = [\"New York         


        
6条回答
  •  伪装坚强ぢ
    2021-01-25 22:37

    I would do

    matches = [ s for s in states if s in postal_addr ]
    

    Then, if you want to get the string from the postal address:

    import re
    if matches:
        extracted = re.findall( matches[0],  postal_addr)[0]
    

    EDIT: ..but this won't work for city/state combos where the city name contains a different state, for example if postal_adr = '1 Arrowhead Dr, Kansas City, Missouri 64129' and states = ["New York", "California", "Nebraska", "Idaho", "Missouri", "Kansas"] etc. In this case

    import re
    if matches:
        extracted = [(re.search(m, postal_addr).start() , m) for m in matches ]
        extracted = sorted( extracted )[-1][1]
    

提交回复
热议问题