设置向上
我有以下字典,
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得到了这个,这似乎应该解决这个问题,但错误并没有帮助。
我该怎么办?
答案 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')