首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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也是面向对象编程语言,有类属性和方法,大部分对象操作都是通过类属性和方法来实现,但对于一些常见、通用、普遍操作会使用内置函数来解决。

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

    JsArray对象

    JsArray对象 JavaScriptArray对象是用于构造数组全局对象,数组是类似于列表高阶对象。 描述 在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上有一个

    9.9K00

    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() ,支撑它是一种化繁为简、纯粹却深邃设计思想。 面向对象编程语言自发明时起,就想模拟我们生活于其中现实世界。

    67030

    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() ,支撑它是一种化繁为简、纯粹却深邃设计思想。 面向对象编程语言自发明时起,就想模拟我们生活于其中现实世界。

    52320

    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

    97740

    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("

    3.9K30

    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() ,支撑它是一种化繁为简、纯粹却深邃设计思想。 面向对象编程语言自发明时起,就想模拟我们生活于其中现实世界。

    83720
    领券