我有两个字典,但长度不一样。我想使大字典的长度与小字典的长度相同。 我用这个,但是我认为这给我带来了错误,因为我不能对这样的字典做它。 它给了我这个错误:TypeError:无法散列的类型:'slice'
if len(ints2answers) > len(ints2questions):
ints2answers = ints2answers[:len(ints2questions)]
elif len(ints2questions) > len(ints2answers):
ints2questions = ints2questions[:len(ints2answers)]
答案 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 (类型错误),这意味着您正在执行不支持的字典操作。
字典是无序列表。这意味着他们没有命令。您不能说哪个是字典的第一个对象,而应该是keys
和values
的集合。但是切片(ints2answers[:len(ints2questions)]
)只能用有序列表(即{ {1}},lists
,tuples
)。
如果要对数据执行上述操作,则必须将其设为2D列表。使用以下代码可以很容易地做到这一点(或者您可以找到自己的方式)
strings
现在,您可以分割列表并执行上述操作。如果您需要再次将其设置为字典,myList = [ [k,v] for k, v in myDict.items() ]
将完成这项工作。