3 回答

TA貢獻1795條經驗 獲得超7個贊
我可能會誤解,但如果您的列表與您的示例相對應,您可以簡單地定義list_1using list_2:
list_2 = ['g b 2', 'f a 1', 'h c 3']
list_1 = [f"{s[2]}_{s[4]}" for s in list_2]
print(list_1)
輸出:
['b_2', 'a_1', 'c_3']

TA貢獻1772條經驗 獲得超6個贊
我相信有一些缺失的信息。盡管如此,對于給定的列表,我們可以設計這種方法:
# 1. Format list 2 to look like list 1
list_2_mod = [s[2:].replace(" ", "_") for s in list_2]
# 2. Filter elements in list 2 not in list 1
list_final = [s for s in list_2_mod if s in list_1]
聰明的做法是,給定您的 list_1(具有唯一元素,并且所有元素在 list_2 中具有明顯的等效項),您只需要第一步。無需排序!list_2 已經排序好了。

TA貢獻1803條經驗 獲得超6個贊
我想我大概明白你想做什么。請看下面:
list_1 = ['a_1', 'b_2', 'c_3']
list_2 = [ 'g b 2', 'f a 1', 'h c 3']
dict_1 = {item1[0] + ' ' + item1[-1]: item1 for item1 in list_1}
l = [dict_1[item2[2:]] for item2 in list_2 if item2[2:] in dict_1]
添加回答
舉報