如何更改字典的长度

问题描述 投票:0回答:2

我有两个字典,但长度不一样。我想让大字典的长度与小字典的长度相同。我使用这个但是它给了我错误,我想,因为我无法做到这样的字典。它给了我这个错误:TypeError:unhashable类型:'sl​​ice'

if len(ints2answers) > len(ints2questions):
    ints2answers = ints2answers[:len(ints2questions)]
elif len(ints2questions) > len(ints2answers):
    ints2questions = ints2questions[:len(ints2answers)]
python python-3.x dictionary
2个回答
1
投票

正如已经指出的那样,字典数据结构不提供切片。但是你可以在字典中切片items并将其转换回字典。

>>> d = {0:0, 1:1, 2:2, 3:3}
>>> max_len = 2
>>> dict(list(d.items())[:max_len])
{0: 0, 1: 1}

0
投票

您收到类型错误,表示您正在对字典执行不受支持的操作。

字典是无序列表。这意味着他们没有订单。你不能说这是字典的第一个对象,而是一组keysvalues。但切片(ints2answers[:len(ints2questions)])只能用有序列表(即liststuplesstrings)来完成。

如果要对数据执行上述操作,则必须将其设为2D列表。这可以通过以下代码轻松完成(或者您可以找到自己的方式)

myList = [ [k,v] for k, v in myDict.items() ]

现在,您可以对列表进行切片并执行上述操作。如果你需要再次将它作为字典,dict(myList)将完成这项工作。

© www.soinside.com 2019 - 2024. All rights reserved.