Len和Print Len()的区别

时间:2016-06-01 19:21:30

标签: python jupyter

我最近开始用Python进行数据分析,因为我没有从头开始学习Python,我觉得我错过了一些细微差别。

我注意到的一件事是在我的一份报告中,我从CSV导入了一个数据集,将其作为字典放入,操纵它并尝试打印剩余的条目。

我用过:

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

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

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

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

len只有一个计数的'记忆'吗?为什么我需要添加打印?

4 个答案:

答案 0 :(得分:4)

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

Here is the method documentation

答案 1 :(得分:3)

len返回一个值,仅在REPL中您将看到返回的值而不将值赋给变量。更具体地说,

  

LEN(S)

     

返回对象的长度(项目数)。争论可能   是一个序列(如字符串,字节,元组,列表或范围)或a   集合(例如字典,集合或冻结集)。

答案 2 :(得分:0)

当不清楚时,您需要打印或写入,需要回显产生某些值的所有内容(例如在我们称之为REPL Read Eval Print Loop的交互式会话中)。

所以:

v = len([1, 42])

将值2放在v。

所以在执行的脚本中有以下3行:

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

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

答案 3 :(得分:0)

以这种方式看待它。

n = len(a)

n设置为返回值。

n = print(len(a))

None分配给n,因为print()返回的是print()。在函数式编程术语中,将值打印到控制台是一个副作用,即使这通常是您在任何事情上调用print的原因。

(在传统的Python 2中,这是一个语法错误,因为len(a)是一个关键字。)

在Python提示符下,print()的值也由Python解释器打印,但这是因为Python解释器会自动执行此操作,以方便您使用。

在常规Python程序中,基本上只有write()len等产生输出,大多数操作(+openlet mirrored_object = Mirror(reflecting: Constants.const.self) 等等)只返回一些东西,而不打印它。 (想想如果一个程序打印出所计算的所有内容,程序会有多么嘈杂。)