2017-06-20 2 views
0

Ich habe eine Liste von String wieCheck For String/Set von Strings (getrennt durch |) in Liste der Strings 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 

Wie kann ich überprüfen, ob alle Länder in str2 in der Countries Liste verfügbar sind ?

+0

'true' muss' true' in 'python' – languitar

Antwort

4

Sie können alle Anweisung überprüfen verwenden, wenn jedes Land der str2 in Ländern ist:

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

Das ist, was ich für –

2

Sie können durch die Schaffung set aus der Liste mit builtin set Funktion erfahren.

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

Versuchen:

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

lookinf war, dass' sein sollte <= ', nicht' <' –

Verwandte Themen