如何刪除元組中的特定元素?如何刪除元組中的特定元素?
例如:
L={('a','b','c','d'):1,('a','b','c','e'):2}
remove='b'
我想要得到的結果是:
{('a','c','d'):1,('a','c','e'):2}
如何刪除元組中的特定元素?如何刪除元組中的特定元素?
例如:
L={('a','b','c','d'):1,('a','b','c','e'):2}
remove='b'
我想要得到的結果是:
{('a','c','d'):1,('a','c','e'):2}
In [20]: L={('a','b','c','d'):1,('a','b','c','e'):2}
In [21]: {tuple(y for y in x if y != "b"):L[x] for x in L}
Out[21]: {('a', 'c', 'd'): 1, ('a', 'c', 'e'): 2}
或使用filter()
:
In [24]: { tuple(filter(lambda y:y!="b",x)) : L[x] for x in L}
Out[24]: {('a', 'c', 'd'): 1, ('a', 'c', 'e'): 2}
您可以創建一個更新版本詞典 使用字典解析表達式:
L = {('a', 'b', 'c', 'd'): 1, ('a', 'b', 'c', 'e'): 2, ('f', 'g', 'h'): 3}
remove='b'
L = {tuple(i for i in k if i != remove) if remove in k else k:v for (k,v) in L.items()}
print L
輸出:
{('a', 'c', 'e'): 2, ('a', 'c', 'd'): 1, ('f', 'g', 'h'): 3}
正如你可以看到它,它的葉子項目,而不單單他們的元組鍵的元素。
你能否提供一些更好的背景說明爲什麼你有這樣的結構?笏,如果刪除一個元素後,2鍵變得相同? – Eduardo