我最近开始用Python进行数据分析,因为我不是从头开始学习Python的,我觉得我错过了一些细微差别。
我注意到的一件事是,在我的一份报告中,我从CSV导入了一个数据集,将其作为字典放入,对其进行了操作并尝试打印其余条目。
我使用过:
len(a)
len(b)
len(c)
当我这样做时,只有一个数字返回,所以我花了大量时间来调试我的代码。最后,我在网上找到了类似的代码,并试图复制其语法。有效的更改是:
print len(a)
print len(b)
print len(c)
我试图了解这两个命令之间的区别。最初我以为 len 只是打印了一个计数,但我想它有什么不同吗?
len 只有一个计数的"记忆"吗?为什么需要添加打印?
len(list) 不打印任何内容,它只返回。如果您使用的是 REPL(读取 - 评估 - 打印 - 循环),那么它将打印返回值并循环。因此,要打印多个,您必须调用打印。
这是方法文档
len
返回一个值,只有在 REPL 中,您才会看到返回的值,而无需将值分配给变量。更具体地说,
镜头
返回对象的长度(项数)。该参数可能 是序列(如字符串、字节、元组、列表或范围)或 集合(例如字典、集合或冻结集合)。
时,您需要打印或写入,产生某些价值的所有内容都需要回显(例如,在交互式会话中,我们称之为 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
设置为返回值。
n = print(len(a))
将None
分配给n
,因为这是print()
返回的内容。 在函数式编程术语中,将值打印到控制台是一种副作用,尽管这通常是在任何内容上调用print()
的原因。
(传统。Python 2 这是一个语法错误,因为print
是一个关键字。
在 Python 提示符下,Python 解释器也会打印 len(a)
的值,但这是因为 Python 解释器会自动执行此操作,以方便您使用。
在常规的Python程序中,基本上只有print()
和write()
等产生输出,大多数操作(len
,+
,open
等)只返回一些东西,而不打印它。 (想想如果一个程序打印它计算的所有内容,它会有多嘈杂。