2017-06-20 63 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

這應該是'<= ',而不是'<' –