首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用“an”从句来理解列表?

如何使用“an”从句来理解列表?
EN

Stack Overflow用户
提问于 2020-09-13 05:09:49
回答 2查看 54关注 0票数 0

max_list变量列表理解是如何工作的?

代码语言:javascript
复制
def mode(*args):
    dict_vals = {i: args.count(i) for i in args}
    max_list = [k for k, v in dict_vals.items() if v == max(dict_vals.values())]
    return max_list

我知道dict_vals创建了一个字典,它保存您输入的值(键)和每个值的出现次数(键的值)。我还知道,max_list创建了一个键(值)列表,这些键(值)是根据最大值(出现)创建的。我只想知道在max_list中使用的理解是如何工作的,也许还想了解一些将字典转换为具有类似语法的列表的其他示例,以供有用的应用程序使用。另外,是否有类似的方法来处理元组呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-09-13 05:16:48

代码语言:javascript
复制
dict_vals.items()

items()方法生成字典中的每个键值对。

代码语言:javascript
复制
k, v in dict_vals.items()

这将迭代items()生成的字典中的每个键值对。

代码语言:javascript
复制
k, v in dict_vals.items() if v == max(dict_vals.values())

通过只选择值等于存储在dict_vals中的最大值的对(.values()给出所有的值& max()找到其中最大的值)来筛选键值对的列表。

最后,

代码语言:javascript
复制
k for k,v in dict_vals.items() if v == max(dict_vals.values())

只为这些对选择键(k)。[]把它变成了一个列表。

票数 1
EN

Stack Overflow用户

发布于 2020-09-13 05:15:12

代码语言:javascript
复制
max_list = [k for k, v in dict_vals.items() if v == max(dict_vals.values())]

做类似于:

代码语言:javascript
复制
max_list = []
for k,v in dict_vals.items():
    if v == max(dict_vals.values()):
        max_list.append(k)

列表理解中的第一个变量(在本例中是k)总是列表中的内容。结尾处的条件检查是否应该添加循环中的当前项。如果您想要在元组中得到结果,我相信您只需将外部用元组包装(一个简单的括号是不行的,因为解释器可能会认为您只是对操作进行分组)。

代码语言:javascript
复制
max_list = tuple(k for k, v in dict_vals.items() if v == max(dict_vals.values()))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63867384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档