2017-06-20 104 views
0

字符串列表可我有一个像检查字符串/组字符串(分立|)在Python

Countries = ['United Kingdom', 'United States', 'Luxembourg', 'Canada', 'China', 'Brazil', 'Hong Kong', 'Indonesia', 'Japan', 'India', 'Ireland', 'Germany', 'Australia', 'France', 'Switzerland', 'Malta', 'South Korea', 'Russia', 'Taiwan', 'Bermuda', 'Turkey', 'Mexico', 'Not Applicable', 'Argentina', 'South Africa', 'Malaysia', 'Thailand', 'Singapore', 'Qatar', 'Italy'] 

str1 = 'United Kingdom' 
str2 = 'United States|China|Hong Kong|Italy' 

len([col for col in Countries if str1 in col]) > 0 
returns TRUE 

字符串列表如何检查在str2中的所有国家无论是在Countries列表中可用?

+0

TRUE;必须是TRUE;在'python' – languitar

回答

4

可以使用所有的语句来检查,如果在str2的每一个国家在国家

Countries = ['United Kingdom', 'United States', 'Luxembourg', 'Canada', 'China', 'Brazil', 'Hong Kong', 'Indonesia', 'Japan', 'India', 'Ireland', 'Germany', 'Australia', 'France', 'Switzerland', 'Malta', 'South Korea', 'Russia', 'Taiwan', 'Bermuda', 'Turkey', 'Mexico', 'Not Applicable', 'Argentina', 'South Africa', 'Malaysia', 'Thailand', 'Singapore', 'Qatar', 'Italy'] 

str1 = 'United Kingdom' 
str2 = 'United States|China|Hong Kong|Italy' 

str2 = str2.split("|") 

if all(i in Countries for i in str2): 

    #do something 
+0

这就是我lookinf为 –

2

您可以通过使用内置set功能创建从列表set找出来。

set.issubset Docstring: Report whether another set contains this set. Type: method_descriptor

In [3]: str2 = str2.split('|') 
In [8]: set(str2).issubset(set(Countries)) 
Out[8]: True 
0

尝试:

for str in str2.split('|'): 
    if str in Countries: 
    print(str) 
0
Countries = ['United Kingdom', 'United States', 'Luxembourg', 'Canada', 'China', 'Brazil', 'Hong Kong', 'Indonesia', 'Japan', 'India', 'Ireland', 'Germany', 'Australia', 'France', 'Switzerland', 'Malta', 'South Korea', 'Russia', 'Taiwan', 'Bermuda', 'Turkey', 'Mexico', 'Not Applicable', 'Argentina', 'South Africa', 'Malaysia', 'Thailand', 'Singapore', 'Qatar', 'Italy'] 

str1 = 'United Kingdom' 
str2 = 'United States|China|Hong Kong|Italy' 

str3 = str2.split("|") 
if set(str3) <= set(Countries): 
    return True 
+1

这应该是'<= ',而不是'<' –