Len 和 Print Len() 的区别

Difference between Len and Print Len()

我最近开始在 Python 中进行数据分析,但由于我没有从头开始学习 Python,所以我觉得我错过了一些细微差别。

我注意到的一件事是,在我的一份报告中,我从 CSV 文件中导入了一个数据集,将其作为字典放入,对其进行了操作,然后试图打印剩余的条目。

我用过:

len(a)
len(b)
len(c)

当我这样做时,只有一个数字返回,所以我花了很多时间调试我的代码。最后我在网上找到了类似的代码,并尝试复制其语法。有效的更改是:

print len(a)
print len(b)
print len(c)

我正在尝试了解这两个命令之间的区别。最初我以为 len 只是打印出一个计数,但我猜它有些不同?

len只有'memory'一个数吗?为什么我需要添加打印?

len(list) 不打印任何东西,它只打印 returns。如果您使用的是 REPL(读取 - 评估 - 打印 - 循环),那么它将打印返回值并循环。因此要打印多个你必须调用 print.

Here is the method documentation

len returns 一个值,只有在 REPL 中你会看到返回的值,而没有将值赋给变量。更具体地说,

len(s)

Return the length (the number of items) of an object. The argument may be a sequence (such as a string, bytes, tuple, list, or range) or a collection (such as a dictionary, set, or frozen set).

当不清楚时你需要打印或写入,所有产生一些值的东西都需要回显(比如在交互式会话中我们称之为 REPL Read Eval Print Loop)。

所以:

v = len([1, 42])

将值 2 放入 v.

因此在执行的脚本中包含以下 3 行:

v = len([1, 42])
len([1, 42])
print v

只会打印一行(即显示值为 2 的最后一行。

这样看。

n = len(a)

n 设置为 returned 值。

n = print(len(a))

None 分配给 n,因为那是 print() return 的内容。从函数式编程的角度来说,将值打印到控制台是一种副作用,尽管这通常是您在任何事情上调用 print() 的原因。

(在繁体中。Python 2 是一个语法错误,因为 print 是一个关键字。)

在 Python 提示符下,len(a) 的值也由 Python 解释器打印出来,但那是因为 Python 解释器会自动为您打印方便。

在常规的Python程序中,基本上只有print()write()等产生输出,而大多数操作(len+open, etc etc) 只有 return 的东西,没有打印出来。 (想想如果一个程序打印它计算的所有东西会有多吵。)