Python:在列表中找到确切的单词

时间:2017-04-11 18:31:20

标签: python regex list

设置向上

我有以下字典,

d={'City':['Paris', 'Berlin','Rome', 'London']}

和以下单元素列表

 address=['Bedford Road, London NW7']   

<小时/> 的问题

我想检查其中一个城市是否在地址中。

<小时/> 目前已尝试

(1)

for x in d['City']:
  if x in address:
    print('yes')
  else: 
    print('no')

仅打印no

(2)

for x in d['City']:
  r = re.compile(x)
  newlist = list(filter(r.match, address)) 

给出TypeError: 'str' object is not callable。从this answer得到了这个,这似乎应该解决这个问题,但错误并没有帮助。

我该怎么办?

3 个答案:

答案 0 :(得分:2)

您的解决方案#1实际上非常接近,但它不起作用,因为address是字符串列表,而不是字符串本身。

因此,如果你只是列出address列表的第一个元素,即address[0],那么它将完美无缺。

或者,你可以试试这个:

>>> any(i in address[0] for i in d['City'] )
True

对于代码段,您可以使用:

if any(i in address[0] for i in d['City'] ):
    print 'Yes'
else:
    print 'No'

答案 1 :(得分:1)

由于您的地址是单元素列表,因此您应该检查address[0]而不是address

for x in d['City']:
    if x in address[0]:
        print('yes')
    else:
        print('no')

答案 2 :(得分:0)

如果您没有增加列表的大小:

for x in d['City']:
    if x in address[0]:
        print('yes')
    else: 
        print('no')