我知道如果我只有两个字符串,那么检查 usingx in y就可以了。如果我只是想检查一个字符串是否在列表中的任何字符串中,我只需使用循环即可for。
但是,检查第一个列表中的任何字符串是否是第二个列表中的字符串的子字符串的最Pythonic /有效的方法是什么?
一个例子是:
notPresent = []
present = []
listA = ['Rick', 'James']
listB = ['Rick', 'Ricky', 'Ryan', 'Jam', 'Jamesses', 'Jamboree']
notPresent = ['Ryan', 'Jam', 'Jamboree']
present = ['Rick', 'Ricky', 'Jamesses']
Run Code Online (Sandbox Code Playgroud)
我将同时使用present和两个notPresent词。
listA = ['Rick', 'James']
listB = ['Rick', 'Ricky', 'Ryan', 'Jam', 'Jamesses', 'Jamboree']
present = {i for i in listB if any(j in i for j in listA)}
notPresent = set(listB) - present # difference of two sets
print(present)
# {'Rick', 'Ricky', 'Jamesses'}
print(notPresent)
# {'Jamboree', 'Ryan', 'Jam'}
Run Code Online (Sandbox Code Playgroud)
any有助于避免在找到匹配项后运行整个迭代长度,并且您可以从第一个set匹配项生成互补集。notPresent
| 归档时间: |
|
| 查看次数: |
2933 次 |
| 最近记录: |