作为 collections.Counter 的结果的字典切片

当我尝试使用 dict(x) 创建字典时,其中 x 是另一个字典的切片,d(y) 其中 y 是 collections.Counter() 对象。这是单线:


lengths=dict(islice(dict(Counter(input())),3))

我得到的例外是这个


lengths=dict(islice(dict(Counter(input())),3))

ValueError: dictionary update sequence element #0 has length 1; 2 is required

根据我的理解,这个错误是在调用更新函数时只使用一个值(而不是键值对)引起的。我知道嵌套函数调用有问题,但找不到。


我怎样才能得到一部分字典项目?有没有一种方法可以在不实际遍历整个字典并更新到新字典的情况下做到这一点?


UYOU
浏览 126回答 3
3回答

慕婉清6462132

您可以islice在Counter(这是一个 dict 子类,因此不需要 dict 转换)对象的项目上使用,然后使用 dict 构造函数将切片项目转换为 dict。例如,dict(islice(Counter('abbcccddeeff').items(), 3))返回:(注意没有d,e和f){'a': 1, 'b': 2, 'c': 3}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python