现在,在python 3.6中对字典进行了排序,必须有这样一种方法,即只能在两行中获取字典的第一个和第二个值。现在,我必须用7行来完成这个:
for key, value in class_sent.items():
i += 1
if i == 1:
first_sent = value
elif i == 2:
second_sent = value
我也尝试过:
first_sent = next(iter(class_sent))
second_sent = next(iter(class_sent))
但在这种情况下,second_sent等于first_sent。如果有人知道如何在尽可能少的行中获取字典中的第一个和第二个值,我会非常感激。
答案 0 :(得分:8)
现在Python只保证保留**kwargs
和类属性的顺序。
考虑到你正在使用的Python实现保证了你可以做的这种行为。
itertools.islice
。
>>> from itertools import islice
>>> dct = {'a': 1, 'b': 2, 'c': 3}
>>> first, second = islice(dct.values(), 2)
>>> first, second
(1, 2)
iter()
。
>>> it = iter(dct.values())
>>> first, second = next(it), next(it)
>>> first, second
(1, 2)
>>> first, second, *_ = dct.values()
>>> first, second
(1, 2)
答案 1 :(得分:0)
这可行:
first_sent, second_sent = list(class_sent.values())[:2]