说我有一个列表var url = "https://localhost/api/1/databases/geolocation/collections/boom/"+globalData._id.$oid+"?apiKey=veTqID_gkb74tG-yL4MGcS1p2RRBP1Pf"
if(url.indexOf(UP) !== -1){
var IP = GetIPfromConfig();
url = url.replace(/localhost/, IP);
}
我有一个参数列表match = ['one', 'two', 'three']
我想只对项目进行操作,如果它与foo = ['something', 'something_two', 'something', (...)]
列表中的任何项目匹配:
match
但我不知道如何制作它,以便for each in foo:
for match_item in match:
if match_item not in each:
no_match = True
break
if no_match:
break
# do the desired operations
遇到'something_two'
并且打破所有循环时匹配不会失败。 'one'
中的项目只是match
项目中整个字符串的一部分,这就是我在foo
中循环浏览项目列表的原因。
接近这个的好方法是什么?
答案 0 :(得分:0)
您可以使用带有条件的生成器表达式来缩小列表:
for each in (item for item in foo if item in match):
# do the desired operations
或使用filter
函数:
for each in filter(lambda item: item in match, foo):
# do the desired operations
答案 1 :(得分:0)
我能想到的最简单的方法是
for item in foo:
if item in match:
# do desired operations
或者如果你想对列表本身进行操作
for i in range(len(foo)):
if foo[i] in match:
# do desired operation on foo[i]