使用dict
映射每個字符串中TEST1其指數關係你按索引和查找是0(1)
這樣:
test1 = ["a","b","c","d","e","f","g","h","i"]
inds = dict(zip(test1, range(len(test1))))
test2 = [("c",1),("g",1),("b",1),("e",1),("g",1),("d",10),("a",10)]
print(sorted(test2,key=lambda x: (x[1], inds[x[0]])))
輸出:
[('b', 1), ('c', 1), ('e', 1), ('g', 1), ('g', 1), ('a', 10), ('d', 10)]
如果你真的想要的字符串按排序順序排列,您可以直接使用字符串本身,使用itemgetter
代替lambda:
test2 = [("c", 1), ("g", 1), ("b", 1), ("e", 1), ("g", 1), ("d", 10), ("a", 10)]
from operator import itemgetter
print(sorted(test2, key=itemgetter(1, 0)))
[('b', 1), ('c', 1), ('e', 1), ('g', 1), ('g', 1), ('a', 10), ('d', 10)]
那麼你有什麼嘗試?它是什麼工作,什麼不是? – tglaria