简体   繁体   中英

Remove tuple from a list if both elements are partial string match based on regex

[('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')]

lst = [i for i in lst if re.findall(r'B\d+',i[0]).= re,findall(r'B\d+',i[1])]

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]]

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM