我有点难倒在这里,并会喜欢一些帮助。删除字典中每个键的第一项
所以我有一个像这样
{'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'是一个字典对象) –