首页
学习
活动
专区
圈层
工具
发布

Python为什么要len(array),而不是像Java一样array.size()?

知乎上有个问题,关于Python和Java语法的对比,同样是计算数组长度,为什么Python使用len(array),属于内置函数,而Java则用array.size(),属于类方法。...Python中len()函数不仅可以计算array的长度,还可以计算元组、集合、字符串、字典等任何可迭代对象的长度。 这样的好处是不同的对象计算长度,你不需要每次调用不同的对象方法来实现。...此类的函数还有很多,比如排序函数sorted(),类型函数type(),位数函数round(),打印函数print()等,和len()一样,这些都是python的内置函数。...之所以没有像Java array对象将size设置为类方法,因为python语言特性就是要追求简洁性和一致性,能一种方法搞定的绝不多费功夫,哪怕牺牲一点安全性。...当然,python也是面向对象的编程语言,有类属性和方法,大部分的对象操作都是通过类属性和方法来实现,但对于一些常见的、通用的、普遍的操作会使用内置函数来解决。

28010
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Js中Array对象

    Js中Array对象 JavaScript的Array对象是用于构造数组的全局对象,数组是类似于列表的高阶对象。 描述 在JavaScript中通常可以使用Array构造器与字面量的方式创建数组。...在Js中使用Array构造器创建出的存在空位的问题,默认并不会以undefined填充,而是以empty作为值,需要注意的是,空位并不是undefined,undefined表示的是没有定义,但是本身undefined...Array.of()方法创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型,Array.of()和Array构造函数之间的区别在于处理整数参数,例如Array.of(7)创建一个具有单个元素...7的数组,而Array(7)创建一个长度为7的空数组。...() entries()方法返回一个新的Array Iterator对象,该对象包含数组中每个索引的键/值对,Array Iterator对象的原型__proto__:Array Iterator上有一个

    11.2K00

    len(x) 击败 x.len(),从内置函数看 Python 的设计思想

    举个例子,求字符串 x 的长度,Python 的写法是 len(x) ,而且这种写法对列表、元组和字典等对象也同样适用,只需要传入对应的参数即可。len() 函数是共用的。...这就引出本文最想讨论的一个问题来:为什么 Python 要设计成 len(x) 这种前缀表达,而不是 x.len() 这样的后缀表达呢?...但当读到 x.len() 时,我必须事先知道某种容器 x,它实现了一个接口,或者继承了一个拥有标准 len() 方法的类。...这已经不仅是在说 len() 更可读易懂了,而完全是在拔高 len() 的地位。...所以,我们能说 len(x) 击败 x.len() ,支撑它的是一种化繁为简、纯粹却深邃的设计思想。 面向对象的编程语言自发明时起,就想模拟我们生活于其中的现实世界。

    81930

    len(x) 击败 x.len(),从内置函数看 Python 的设计思想

    len(x) 击败 x.len(),从内置函数看 Python 的设计思想 ? 内置函数是 Python 的一大特色,用极简的语法实现很多常用的操作。...举个例子,求字符串 x 的长度,Python 的写法是 len(x) ,而且这种写法对列表、元组和字典等对象也同样适用,只需要传入对应的参数即可。len() 函数是共用的。...这就引出本文最想讨论的一个问题来:为什么 Python 要设计成 len(x) 这种前缀表达,而不是 x.len() 这样的后缀表达呢?...这已经不仅是在说 len() 更可读易懂了,而完全是在拔高 len() 的地位。...所以,我们能说 len(x) 击败 x.len() ,支撑它的是一种化繁为简、纯粹却深邃的设计思想。 面向对象的编程语言自发明时起,就想模拟我们生活于其中的现实世界。

    69820

    js中for in碰到Array.prototype的问题

    最近一个js项目中使用了for(let i in arr) {} 循环,for in的好处就是被遍历的对象可以是数组,可以是对象,就算是null和undefined都没有问题,不会报错,所以被大量使用,...自定义方法,结果项目开始报错,最后发现问题出现在for in的时候会遍历枚举对象属性,包括prototype中的enumerable为true的对象属性,所以就出现问题了。...刚开始我找问题,发现给Array增加自定义方法可以用以下2种办法: Array.prototype.last = function () { console.log('do last'); }...是否可以呢 Object.defineProperty(Array.prototype,'last', { enumerable : false }); for (let idx in arr)...但是我们不可能把所有使用Array.prototype的都去设置一下,继续找找别的办法吧,继续发现了通过hasOwnProperty判断是是否为自有属性,2种写法如下: for (let idx in

    1.6K40

    WPS JS宏——数组Array对象

    VBA中的数组只有很少的几个函数可以操作: Ubound 取数组的上标 Luound 取数组的下标 Filter 筛选一维数组 Join 将一维的String类型数组连接为1个字符串 Array...生成1个Variant类型的数组 IsArray 判断1个变量是否是数组 Erase 释放数组所占资源 VBA的数组功能比较的少,但是在JS中,数组也是一种对象,JS已经在这个对象上实现了很多的属性和方法...1个数组构成新的数组 slice 创建子数组 ………… 有这么多的方法仅仅是因为JS帮忙实现好了,可以简单理解为在VBA中,也可以自己去实现这些操作数组的函数,然后调用。...当然一般的使用者写的函数可能效率比较低,没有JS这种设计语言的人写的好。 在Excel中使用VBA或者JS,涉及数组这一块,单元格与数组之间的直接赋值,是非常的方便的。...在A1到B5单元格输入公式=ADDRESS(ROW(),COLUMN()),获取单元格地址,然后进行测试: function testRange2Array() { var arr = Range("

    5.2K30

    len(x) 击败 x.len(),从内置函数看 Python 的设计思想

    举个例子,求字符串 x 的长度,Python 的写法是 len(x) ,而且这种写法对列表、元组和字典等对象也同样适用,只需要传入对应的参数即可。len() 函数是共用的。...这就引出本文最想讨论的一个问题来:为什么 Python 要设计成 len(x) 这种前缀表达,而不是 x.len() 这样的后缀表达呢?...但当读到 x.len() 时,我必须事先知道某种容器 x,它实现了一个接口,或者继承了一个拥有标准 len() 方法的类。...这已经不仅是在说 len() 更可读易懂了,而完全是在拔高 len() 的地位。...所以,我们能说 len(x) 击败 x.len() ,支撑它的是一种化繁为简、纯粹却深邃的设计思想。 面向对象的编程语言自发明时起,就想模拟我们生活于其中的现实世界。

    1K20
    领券