gpt4 book ai didi

python-3.x - python3解压缩元组列表

转载 作者:行者123 更新时间:2023-12-03 23:52:56 26 4
gpt4 key购买 nike

在 python2.7 中,以下代码采用字典 fd(在此示例中表示单词的频率分布及其计数),并将其分成两个列表的列表:[[the键],[值]]:

sortedDKandVs = [zip(*sorted(fd.items(), key=itemgetter(1), reverse=True))] #[word,word,...],[count,count]

然后我可以这样做,例如:

keys = sortedDKandVs[0]
values = sortedDKandVs[1]

这不再适用于 Python3,我想知道如何转换代码。

这里没有答案How to unzip a list of tuples into individual lists?不再工作,因为在 Python3 zip 对象中返回迭代器而不是列表,但我不确定如何转换答案。

最佳答案

Python 2:

Python 2.7.6 (default, Apr  9 2014, 11:48:52) 
[GCC 4.2.1 Compatible Apple LLVM 5.1 (clang-503.0.38)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> di={'word1':22, 'word2':45, 'word3':66}
>>> zip(*sorted(di.items(), key=itemgetter(1), reverse=True))
[('word3', 'word2', 'word1'), (66, 45, 22)]
>>> k,v=zip(*sorted(di.items(), key=itemgetter(1), reverse=True))
>>> k
('word3', 'word2', 'word1')
>>> v
(66, 45, 22)

Python 3:

Python 3.4.1 (default, May 19 2014, 13:10:29) 
[GCC 4.2.1 Compatible Apple LLVM 5.1 (clang-503.0.40)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> di={'word1':22, 'word2':45, 'word3':66}
>>> k,v=zip(*sorted(di.items(), key=itemgetter(1), reverse=True))
>>> k
('word3', 'word2', 'word1')
>>> v
(66, 45, 22)

Python 2 和 Python 3 完全相同

如果您想要列表与元组(Python 3 和 Python 2):

>>> k,v=map(list, zip(*sorted(di.items(), key=itemgetter(1), reverse=True)))
>>> k
['word3', 'word2', 'word1']
>>> v
[66, 45, 22]

关于python-3.x - python3解压缩元组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24590614/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com