Python 将列表与元组列表进行比较
我有一个元组列表,例如Python 将列表与元组列表进行比较,python,python-3.x,Python,Python 3.x,我有一个元组列表,例如 journeylist = [("uk_Frank_3734823","342-2432-242-2342",2,3434-3434),("uk_joe_3734823","342-2432-242-2342",2,3434-3434)] 和一份清单,例如 exclusion = ["joe","jack","alice"] 我想
journeylist = [("uk_Frank_3734823","342-2432-242-2342",2,3434-3434),("uk_joe_3734823","342-2432-242-2342",2,3434-3434)]
和一份清单,例如
exclusion = ["joe","jack","alice"]
我想将排除列表与每个元组的0索引进行比较。该值可以是任何情况下的值,例如
73473_Jack_uk
,并且列表中有Jack
。他们应该匹配。如果存在匹配项,则必须删除整个元组或将不匹配项添加到另一个列表中。我将通过降低第一个值的大小写并对照它检查排除列表来完成此操作:
lowered_exclusion=[excl.lower()表示排除中的排除]
筛选的_journeylist=[]
对于journeylist中的旅程:
第一个=行程[0]。下()
如果没有(排除在第一位,排除在第二位):
筛选的_journeylist.append(旅程)
为了让事情更清楚,我已经写了代码并进行了解释。:)
[i代表日志列表中的i,如果没有([x.lower()代表i[0]。lower()代表排除列表中的x])
您对此有什么问题吗?谢谢!我不得不做一个小小的改变:如果没有(excl.lower()首先用于excl in exclusion):但是你为我节省了很多时间。我学习了一个新函数:any(),再次感谢。@neo2049根据调用的方式,在内部循环之外降低排除
列表的大小写可能是有意义的。我会更新答案。
journeylist = [("uk_Frank_3734823","342-2432-242-2342",2,3434-3434),("uk_joe_3734823","342-2432-242-2342",2,3434-3434)] # Your provided journey list;
exclusion = ["joe","jack","alice"] # Your provided exclusion list;
JourneyList_lowercase = [i[0].lower() for i in journeylist] # Dublicate journey list array in lowercase;
ExclusionList_lowercase = [i.lower() for i in exclusion] # Dublicate exclusion list in lowercase;
Filtered_List = [] # Prepare new list;
for JL in JourneyList_lowercase: # Go trough journey list in lowercase array;
if not any(EXC in JL for EXC in ExclusionList_lowercase): # Check if we have not any exclusion in our journey list;
Filtered_List.append(JL) # If we have not any exclusion in our journey list -> add value to our new prepared list;
print(Filtered_List)