gpt4 book ai didi

python - [] sum() 函数中使用的参数或输入 - 它在做什么?

转载 作者:太空宇宙 更新时间:2023-11-03 12:52:53 26 4
gpt4 key购买 nike

我正在查看普通 stackoverflow 用户 Peter Norvig 的以下页面:http://norvig.com/sudoku.html

在此代码中,Peter 使用了以下代码:

peers = dict((s, set(sum(units[s], [])) - set([s])) for s in squares)

units 是数独板上“列”、“行”和“9*9 方 block ”的字典,squares 是所有可能的行/列组合。

我不明白求和符号 sum(units[s], []) 如果我删除 , [] 短语,我会得到一个错误:

"unsupported operand type(s) for +: 'int' and 'list'"

使用help(sum) 返回

sum(iterable, start=0, /)

Return the sum of a 'start' value (default: 0) plus an iterable of numbers

When the iterable is empty, return the start value. This function is intended specifically for use with numeric values and may reject non-numeric types.

所以我的问题是,“[] 在这个函数中做了什么?”显然它是一个空列表,但它是 sum() 函数的参数还是要添加到 units[s] 的值? python 文档对此相对“安静”,除非我根本不理解它.... https://docs.python.org/3/library/functions.html#sum

最佳答案

Sum 使用 + 运算符进行求和。 +list 中重载以扩展列表

>>> sum([[1,2], [3,4], [5,6]], [])
[1, 2, 3, 4, 5, 6]

所以 sum(units[s], []) 试图将可迭代列表 (units[s]) 连接到一个 list

您收到该错误可能是因为 units[s] 出于某种原因是一个整数,而它应该是一个 list

关于python - [] sum() 函数中使用的参数或输入 - 它在做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56027331/

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