当前位置: 首页 > 面试题库 >

arr .__ len __()是在Python中获取数组长度的首选方法吗?

楚承天
2023-03-14
问题内容

在Python中,以下是获取元素数量的唯一方法吗?

arr.__len__()

如果是这样,为什么会有奇怪的语法?


问题答案:
my_list = [1,2,3,4,5]
len(my_list)
# 5

对于元组也是如此:

my_tuple = (1,2,3,4,5)
len(my_tuple)
# 5

和字符串,实际上只是字符数组:

my_string = 'hello world'
len(my_string)
# 11

这样做的目的是使列表,元组和其他容器类型或可迭代对象不需要全部显式实现公共.length()方法,而只需检查len()实现“
magic”__len__()方法的所有内容即可。

当然,这似乎是多余的,但是长度检查的实现可能会有很大的不同,即使在同一语言中也是如此。经常会看到一种类型的集合使用一种.length()方法,而另一种类型使用一种.length属性,而另一种类型使用.count()。使用语言级关键字可以统一所有这些类型的入口点。因此,即使您可能不认为是元素列表的对象仍然可以进行长度检查。这包括字符串,队列,树等。

的功能性质len()也很适合编程的功能样式。

lengths = map(len, list_of_containers)


 类似资料:
  • 本文向大家介绍Go语言获取数组长度的方法,包括了Go语言获取数组长度的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Go语言获取数组长度的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的Go语言程序设计有所帮助。

  • 本文向大家介绍C/C++中获取数组长度的方法示例,包括了C/C++中获取数组长度的方法示例的使用技巧和注意事项,需要的朋友参考一下 学过C/C++的人都知道,在C/C++中并没有提供直接获取数组长度的函数,对于存放字符串的字符数组提供了一个strlen函数获取其长度,那么对于其他类型的数组如何获取他们的长度呢? 其中一种方法是使用sizeof(array) / sizeof(array[0]),

  • 问题内容: 我需要获取行和列的2D数组的长度。我已经使用以下代码成功完成了此操作: 这将按预期打印出5、10。 现在看一下这一行: 注意,实际上我必须引用特定的行才能获取列的长度。对我来说,这似乎非常丑陋。此外,如果数组定义为: 然后,当尝试获取长度时,代码将失败。有其他方法(更智能)吗? 问题答案: 考虑 每行的列长不同。如果要通过固定大小的2D数组支持某些数据,请在包装器类中为固定值提供吸气剂

  • 本文向大家介绍python获取中文字符串长度的方法,包括了python获取中文字符串长度的方法的使用技巧和注意事项,需要的朋友参考一下 如下所示: 以上这篇python获取中文字符串长度的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 本文向大家介绍C语言获取数组长度的几种方法,包括了C语言获取数组长度的几种方法的使用技巧和注意事项,需要的朋友参考一下 如何通过编程的手段获取某个数组的长度呢? 答案是使用关键字 sizeof。 前面说过,用 sizeof 可以获得数据类型或变量在内存中所占的字节数。同样,用 sizeof 也可以获得整个数组在内存中所占的字节数。因为数组中每个元素的类型都是一样的,在内存中所占的字节数都是相同的,

  • 本文向大家介绍Lua中获取table长度的方法,包括了Lua中获取table长度的方法的使用技巧和注意事项,需要的朋友参考一下 官方文档是这么描述#的: 取长度操作符写作一元操作 #。 字符串的长度是它的字节数(就是以一个字符一个字节计算的字符串长度)。 table t 的长度被定义成一个整数下标 n 。 它满足 t[n] 不是 nil 而 t[n+1] 为 nil; 此外,如果 t[1] 为 n