如何更改字典的长度

时间:2019-03-18 18:55:53

标签: python python-3.x dictionary

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

if len(ints2answers) > len(ints2questions):
    ints2answers = ints2answers[:len(ints2questions)]
elif len(ints2questions) > len(ints2answers):
    ints2questions = ints2questions[:len(ints2answers)]

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

您将收到 Type Error (类型错误),这意味着您正在执行不支持的字典操作。

字典是无序列表。这意味着他们没有命令。您不能说哪个是字典的第一个对象,而应该是keysvalues的集合。但是切片(ints2answers[:len(ints2questions)])只能用有序列表(即{ {1}},liststuples)。

如果要对数据执行上述操作,则必须将其设为2D列表。使用以下代码可以很容易地做到这一点(或者您可以找到自己的方式)

strings

现在,您可以分割列表并执行上述操作。如果您需要再次将其设置为字典,myList = [ [k,v] for k, v in myDict.items() ]将完成这项工作。