我在使用python查找列表中的部分字符串时遇到了一个小问题。
我从文件中加载字符串,其值为以下之一:(none, 1 from list, 2 from list, 3 from list or more...)
我需要执行不同的操作,具体取决于字符串是否等于""
,字符串是否等于1 element from list
,或者字符串是否包含2个或更多元素。例如:
List = [ 'Aaron', 'Albert', 'Arcady', 'Leo', 'John' ... ]
String = "" #this is just example
String = "Aaron" #this is just example
String = "AaronAlbert" #this is just example
String = "LeoJohnAaron" #this is just example
我创造了这样的东西:
if String == "": #this works well on Strings with 0 values
print "something"
elif String in List: #this works well on Strings with 1 value
print "something else"
elif ... #dont know what now
最好的方法是使用列表中的模式拆分此String。我在努力:
String.Find(x) #failed.
我试图找到类似的帖子但不能。
答案 0 :(得分:0)
if String == "": #this works well on Strings with 0 values
print "something"
elif String in List: #this works well on Strings with 1 value
print "something else"
elif len([1 for x in List if x in String]) == 2
...
这称为列表推导,它将遍历列表并找到所有列表元素,这些元素具有与手头字符串相同的子字符串,然后返回其长度。
请注意,如果您使用“Ann”和“Anna”这样的名称可能会出现一些问题,字符串中的名称“Anna”将被计算两次。如果你需要一个解决这个问题的解决方案,我建议拆分大写字母,通过拆分大写字母明确地将列表分成不同的名称(如果你想我可以更新这个解决方案,以显示如何用正则表达式)
答案 1 :(得分:0)
我认为最直接的方法是循环遍历名称列表,并为每个名称检查它是否在您的字符串中。
for name in List:
if name in String:
print("do something here")
答案 2 :(得分:0)
因此,您想要查找某个字符串是否包含给定列表的任何成员。
迭代列表并检查字符串是否包含当前项:
for data in List:
if data in String:
print("Found it!")