[('B5A', 'B5B'), ('B5A', 'B5'), ('B5A', 'B28A'), ('B5A', 'B28B'), ('B5A', 'B28C'), ('B5A', 'B28D'), ('B5A', 'B28E'), ('B5A', 'B28F'), ('B5A', 'B28G'), ('B5A', 'B28H'), ('B5A', 'B28'), ('B5B', 'B28A'), ('B5B', 'B28B'), ('B5B', 'B28C'), ('B5B', 'B28D'), ('B5B', 'B28E'), ('B5B', 'B28F'), ('B5B', 'B28G'), ('B5B', 'B28H'), ('B5B', 'B28'), ('B5', 'B28A'), ('B5', 'B28B'), ('B5', 'B28C'), ('B5', 'B28D'), ('B5', 'B28E'), ('B5', 'B28F'), ('B5', 'B28G'), ('B5', 'B28H'), ('B5', 'B28'), ('B28A', 'B28B'), ('B28A', 'B28C'), ('B28A', 'B28D'), ('B28A', 'B28E'), ('B28A', 'B28F'), ('B28A', 'B28G'), ('B28A', 'B28H'), ('B28A', 'B28'), ('B28B', 'B28C'), ('B28B', 'B28D'), ('B28B', 'B28E'), ('B28B', 'B28F'), ('B28B', 'B28G'), ('B28B', 'B28H'), ('B28B', 'B28'), ('B28C', 'B28D'), ('B28C', 'B28E'), ('B28C', 'B28F'), ('B28C', 'B28G'), ('B28C', 'B28H'), ('B28C', 'B28'), ('B28D', 'B28E'), ('B28D', 'B28F'), ('B28D', 'B28G'), ('B28D', 'B28H'), ('B28D', 'B28'), ('B28E', 'B28F'), ('B28E', 'B28G'), ('B28E', 'B28H'), ('B28E', 'B28'), ('B28F', 'B28G'), ('B28F', 'B28H'), ('B28F', 'B28'), ('B28G', 'B28H'), ('B28G', 'B28'), ('B28H', 'B28')]
I have a list of tuples as above and I want to remove all the tuples from this list if it's elements are partial match for example fist letter B and number after B is same then remove the tuple. so the output should be
[('B5A', 'B28A'), ('B5A', 'B28B'), ('B5A', 'B28C'), ('B5A', 'B28D'), ('B5A', 'B28E'), ('B5A', 'B28F'), ('B5A', 'B28G'), ('B5A', 'B28H'), ('B5A', 'B28'), ('B5B', 'B5'), ('B5B', 'B28A'), ('B5B', 'B28B'), ('B5B', 'B28C'), ('B5B', 'B28D'), ('B5B', 'B28E'), ('B5B', 'B28F'), ('B5B', 'B28G'), ('B5B', 'B28H'), ('B5B', 'B28'), ('B5', 'B28A'), ('B5', 'B28B'), ('B5', 'B28C'), ('B5', 'B28D'), ('B5', 'B28E'), ('B5', 'B28F'), ('B5', 'B28G'), ('B5', 'B28H'), ('B5', 'B28')]
CodePudding user response:
lst = [i for i in lst if re.findall(r'B\d ',i[0]) != re.findall(r'B\d ',i[1])]
CodePudding user response:
You can do a simple list comprehension:
lst = [('B5A', 'B5B'), ('B5A', 'B5'), ('B5A', 'B28A'), ('B5A', 'B28B'), ('B5A', 'B28C'), ('B5A', 'B28D'), ('B5A', 'B28E'), ('B5A', 'B28F'), ('B5A', 'B28G'), ('B5A', 'B28H'), ('B5A', 'B28'), ('B5B', 'B5'), ('B5B', 'B28A'), ('B5B', 'B28B'), ('B5B', 'B28C'), ('B5B', 'B28D'), ('B5B', 'B28E'), ('B5B', 'B28F'), ('B5B', 'B28G'), ('B5B', 'B28H'), ('B5B', 'B28'), ('B5', 'B28A'), ('B5', 'B28B'), ('B5', 'B28C'), ('B5', 'B28D'), ('B5', 'B28E'), ('B5', 'B28F'), ('B5', 'B28G'), ('B5', 'B28H'), ('B5', 'B28'), ('B28A', 'B28B'), ('B28A', 'B28C'), ('B28A', 'B28D'), ('B28A', 'B28E'), ('B28A', 'B28F'), ('B28A', 'B28G'), ('B28A', 'B28H'), ('B28A', 'B28'), ('B28B', 'B28C'), ('B28B', 'B28D'), ('B28B', 'B28E'), ('B28B', 'B28F'), ('B28B', 'B28G'), ('B28B', 'B28H'), ('B28B', 'B28'), ('B28C', 'B28D'), ('B28C', 'B28E'), ('B28C', 'B28F'), ('B28C', 'B28G'), ('B28C', 'B28H'), ('B28C', 'B28'), ('B28D', 'B28E'), ('B28D', 'B28F'), ('B28D', 'B28G'), ('B28D', 'B28H'), ('B28D', 'B28'), ('B28E', 'B28F'), ('B28E', 'B28G'), ('B28E', 'B28H'), ('B28E', 'B28'), ('B28F', 'B28G'), ('B28F', 'B28H'), ('B28F', 'B28'), ('B28G', 'B28H'), ('B28G', 'B28'), ('B28H', 'B28')]
lst = [i for i in lst if i[0][:2] != i[1][:2]]