我有點難倒在這裏,並會喜歡一些幫助。刪除字典中每個鍵的第一項
所以我有一個像這樣
{'a':[1, 2, 3], 'b':[4, 5, 6]}
一本字典,我需要創建一個函數,它會自動在每個列表/鍵刪除的第一個項目,所以它應該成爲
{'a':[2, 3], 'b':[5, 6]}
我知道我應該使用彈出功能,但當有超過2個鍵和3個值的方式時,它會引起混淆
我有點難倒在這裏,並會喜歡一些幫助。刪除字典中每個鍵的第一項
所以我有一個像這樣
{'a':[1, 2, 3], 'b':[4, 5, 6]}
一本字典,我需要創建一個函數,它會自動在每個列表/鍵刪除的第一個項目,所以它應該成爲
{'a':[2, 3], 'b':[5, 6]}
我知道我應該使用彈出功能,但當有超過2個鍵和3個值的方式時,它會引起混淆
您可以遍歷字典的值並將它們彈出一個一次。如果您需要進一步的功能或控制,可以將其放置在一個功能中。
dict_ = {'a':[1, 2, 3], 'b':[4, 5, 6]}
for val in dict_.values()
val.pop(0)
你可以通過字典&拼接迭代列表。
var1 = {'a':[1, 2, 3], 'b':[4, 5, 6]}
for element in var1:
var1[element] = var1[element][1:]
您可以使用字典理解爲:
>>> a = {'a':[1, 2, 3], 'b':[4, 5, 6]}
>>> {k: a[k][1:] for k in a}
{'a': [2, 3], 'b': [5, 6]}
你可以使用該map
內置函數lambda函數組合一個班輪實現這一目標。這種方法的另一個優點是,有沒有涉及複製(如在切片溶液):
doc = {'a':[1, 2, 3], 'b':[4, 5, 6]}
map(lambda v: v.pop(0), doc.values())
這在你的字典的每個值適用list.pop(0)
。
這裏的另一種解決方案,
dict1={'a':[1, 2, 3], 'b':[4, 5, 6]}
for item in dict1.values():
item.remove(item[0])
的for循環通過的值移動在詞典由 'dict1.values()' 表示。這些值是一組列表,該列表的'.remove()'函數將刪除給定元素的第一個匹配項,所以如果您給它列出的第一個元素,它同樣會將其刪除。
希望這有用!
那麼之前我嘗試了一些隨機的東西,沒有工作。但我只是想這樣做,但我不知道它是否會工作,因爲我只是想到它,還沒有嘗試過它 def delRow(self): for self._table: self._table [key] .pop() 哦對不起,我不太確定這裏的格式化是如何工作的,我怎樣才能讓這看起來更好? –
你不應該問你自己沒有嘗試和測試過的問題。如果你只花了5分鐘時間思考並做一些研究,你就可以自己找到答案。 – Fallenreaper
'd = {k:d [k] [1:] for k in d}'(假設'd'是一個字典對象) –