if the implementation is simply the most recently used 30 emojis, then some sort of ordered iterable array-like structure would be best suited to the problem. Since 0 index insertions are an important requirement, Python’s built in deque data structure would be a good candidate to use here.
deque is found in the collections library and accepts an array-like input of values along with an optional keyword argument named maxlen which specifies the maximum length of the data structure. This last part is ideal for this application, as Apple’s implementation limits the recently used emojis to 30.
from collections import deque recent_emojis = deque(, maxlen=30) def update_recent_emojis(emoji_used, recent_emojis : deque): if emoji_used in recent_emojis: recent_emojis.remove(emoji_used) recent_emojis.appendleft(emoji_used) return recent_emojis