我想過濾包含相同最後4位數的所有項目的列表,我想打印它們中最長的一個。按包含字符串的最長元素過濾列表
例如:
lst = ['abcd1234','abcdabcd1234','gqweri7890','poiupoiupoiupoiu7890']
# want to return abcdabcd1234 and poiupoiupoiupoiu7890
在這種情況下,我們打印包含1234的元件的時間越長,和含7890查找包含特定元素的最長元素中的元素的較長不硬,但對列表中的所有項目(不同的最後四位數字)進行有效似乎很困難。
我的嘗試是使用列表中理解和切片首先找出所有不同的最後4位數字:
ids=[]
for x in lst:
ids.append(x[-4:])
ids = list(set(ids))
接下來,我將通過列表中的索引搜索,以「MAX_LENGTH」變量和「current_id」找到每個ID的最大元素。這顯然效率很低,不知道做這件事的最好方法是什麼。
對不起,我會後的代碼。 –