python--5--len()

2024-04-14 19:28
文章标签 python len

本文主要是介绍python--5--len(),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

学习目标:

  • len()#range,list,列表、元组,字符串,包括空格,返回字典的“键值对”个数

学习内容:

  1. len()#range,list,列表、元组,字符串,包括空格,返回字典的“键值对”个数

len()--返回对象长度

len()#range,list,列表、元组,字符串,包括空格,返回字典的“键值对”个数

len(object)

s = 'abcdef'
print(len(s))
>>>
6

lst = [1, 2, 3, 4]
tup = (1, 2, 3, 4)
st = set([1, 2, 3, 4])
len(lst) == len(tup)
len(st) == len(tup)
>>>
True
True

dic = {1: 'a', 2: 'b', 3: 'c'}
len(dic)
>>>
3
返回字典的“键-值对”个数。

其中,object可以是字符串、列表、元组、集合、字典或其他可迭代对象。

例如,我们可以使用len()函数来获取字符串中字符的数量:

s = "Hello, World!"

print(len(s)) # 输出 13

同样,我们也可以使用len()函数来获取列表、元组或集合中元素的数量:

lst = [1, 2, 3, 4, 5]

print(len(lst)) # 输出 5

tup = (1, 2, 3, 4, 5)

print(len(tup)) # 输出 5

set1 = {1, 2, 3, 4, 5}

print(len(set1)) # 输出 5

对于字典,len()函数将返回字典中键值对的数量:

d = {'a': 1, 'b': 2, 'c': 3}

print(len(d)) # 输出 3

总之,len()函数是一个很常用的函数,可以用来获取容器对象中元素的数量。

除了常见的容器对象之外,len()函数还可以用于其他对象,具体如下:

字符串

s = "Hello, World!"

print(len(s)) # 输出 13

列表

lst = [1, 2, 3, 4, 5]

print(len(lst)) # 输出 5

元组

tup = (1, 2, 3, 4, 5)

print(len(tup)) # 输出 5

集合

set1 = {1, 2, 3, 4, 5}

print(len(set1)) # 输出 5

字典

d = {'a': 1, 'b': 2, 'c': 3}

print(len(d)) # 输出 3

range对象

r = range(1, 6)

print(len(r)) # 输出 5

bytes和bytearray对象

b = b'hello'

print(len(b)) # 输出 5

ba = bytearray(b'hello')

print(len(ba)) # 输出 5

其他可迭代对象

例如,使用len()函数可以获取生成器中元素的数量:

gen = (x for x in range(10))

print(len(gen)) # 报错 TypeError: object of type 'generator' has no len()

需要注意的是,不是所有的可迭代对象都可以使用len()函数来获取元素的数量。如果对象没有定义__len__()方法,那么len()函数将无法获取其元素的数量,并且会报错。例如,上面的例子中,由于生成器没有定义__len__()方法,因此len()函数无法获取其元素的数量,会报错。

len()函数的语法
函数很简单,语法如下:
len(obj)
没错,传入一个obj参数。根据源代码中的解释,这个obj应该理解为一个容器(container),我们来看下源代码中,关于len()函数的注释。
Return the number of items in a container.
返回容器中的项目数
这样的解释简洁明了,比我们总结的好多了。
参数obj传入一个具体对象的实例,这个对象可以是Python内置类型,也可以是我们自定义的类型。
当然,如果是自定义类型,这里我们需要重写对象的__len__()方法才可以使用len()函数获取项目数或执行其它操作。
返回字符串的长度
可以使用len()获取一个字符串的长度
定义一个字符串
s = 'abcdef'
print(len(s))
>>>
6
获取编码的字节数
我们知道,汉字和英文字符在计算长度时,存在差异。比如:
s = '这是一段汉字'
计算长度
len(s)
>>>
6
输出结果为6,刚好6个字符。
但是,我们将汉字编码后,得到的结果会有变化:True
我们看到,len()函数返回了序列容器的项目个数。
len(s.encode())
>>>
18
可以看到,
再使用GBK编码方式,我们试试看
len(s.encode("gbk"))
>>>
12
当使用GBK编码后,len()函数返回了12。
可以看出,len()在计算编码后的文字个数时,统计的是字节数。UTF-8编码后的汉字,每个文字占3个字节。使用GBK编码后,每个文字占2个字节。这里我们使用len()函数就计算了文字编码后的字节数。返回列表、元组(序列对象)中项目的个数
同样,len()函数还可以返回列表、元组、集合等序列对象实例的个数
例如:
lst = [1, 2, 3, 4]
tup = (1, 2, 3, 4)
st = set([1, 2, 3, 4])
len(lst) == len(tup)
len(st) == len(tup)
>>>
True
True
我们看到,len()函数返回了序列容器的项目个数。返回字典(映射对象)的键的个数
在此基础上,len()函数还可以返回映射类对象的“键-值对”个数
举个简单的例子:
dic = {1: 'a', 2: 'b', 3: 'c'}
len(dic)
>>>
3
返回字典的“键-值对”个数。返回自定义对象的“魔法”方法__len__()的返回值
我们知道,Python是完全面向对象的,比较其它编程语言,有一个很有意思的功能,就是类的“魔法方法”(类似__XXX__这样的)。
使用len()函数对不同的类容器计算项目数,本质上来讲就是调用了__len__()方法。
对于自定义的类,我们可以重写__len__()方法,让其实现特有的功能,当使用len()函数时,会执行相应的方法,以达到“偷梁换柱”的目的。
我们自定义一个类,重写__len__()方法,使用len()函数测试,结果如下:

 

类似int、str、list、tuple、dict这样的内置类型,在使用len()函数计算实例长度时,其实就是调用了类定义里面的__len__()方法。
重写__len__()方法可以扩展类的功能,在调用len()函数时,就会执行重写的内容。 


学习时间:

学习时间为不运动的时候,作者咕咕了是去运动(无氧运动和有氧运动都做最好)了,请饶恕。


学习产出:

画工

python--4函数def,本质、值传递、引用传递、默认值参数、*参数名、**变量、lambda [参数]: 函数、偏函数、递归、递归练习                                               http://t.csdnimg.cn/5NUWo

python---3--sort、lambdalen(list1)、sorted_numbers = sorted(numbers)、list.sort()

                                                                                              http://t.csdnimg.cn/WpVQK

python--2作业66,69,71,84;85;数据类型:int()float()TrueFalsestr()list()set()dict()tuple()class 

                                                                                            http://t.csdnimg.cn/R005I

python--1作业,注释、输入输出、运算符、运算结果、三目运算符、关系表达、多值交换、偶数、随机数、三目运算、if、elif、else、while、for、break、contince、pass                                                                                                   http://t.csdnimg.cn/0KDeU


  计算机网络第1章:计算机网络的概念、组成与功能;计算机网络的分类、标准化工作及相关组织

                                                                                                       http://t.csdnimg.cn/uZOAM

计算机网络第一章:性能指标:带宽、时延、时延带宽积、RTT、吞吐量、速率、信道利用率

                                                                                                                                                                                                                           http://t.csdnimg.cn/avNeb

计算机网络体系结构——PDU、SDU、PCI、协议、访问、接口、SAP

                                                                                                          http://t.csdnimg.cn/x3Uar

 计算机网络分层结构——OSI/ISO、TCP/IP                                                                                                                                                   http://t.csdnimg.cn/hLrqY

 1章选择                                                                                          http://t.csdnimg.cn/cnmdJ

2章选择、解答                                                                                http://t.csdnimg.cn/ONrER

   通信基本概念:数据、信号、码元、信源、信道、信宿、速率、波特、带宽                                                                                                        http://t.csdnimg.cn/TKnyM

 数据、信号、码元、信源、信道、信宿、速率、波特、带宽-通信基本概念

                                                                                                         http://t.csdnimg.cn/Kc2e3

HCIA——30奈奎斯特定理、香农定理                                              http://t.csdnimg.cn/Yqtch

HCIA——20应用层:C/S、P2P、peer                                                                                                                                                                                       http://t.csdnimg.cn/4i4Og

HCIA——21C/S、P2P、peer的选择     

                                                                                                                                                                                                                          http://t.csdnimg.cn/4a11f                                                                

 DNS层次域名空间、域名服务器、域名解析的原理                        http://t.csdnimg.cn/yeWd6

 HCIA——23DNS层次域名空间、域名服务器、域名解析的原理的选择、解答                                                                                                                              http://t.csdnimg.cn/RXPNV 

 HCIA——24FTP 的工作原理、功能、TFTP、控制连接、数据连接

                                                                                                                                                                                                                    http://t.csdnimg.cn/9TPlw

HCIA——25FTP 的工作原理、功能、TFTP、控制连接、数据连接的选择、解答 

                                                                                                    http://t.csdnimg.cn/8GkAU

HCIA——26E-mall、MIME、POP3、IMAP、电子邮件系统的组成结构、电子邮件的发送,接收过程、MIME 与SMTP 的关系                                                  http://t.csdnimg.cn/smTaR

HCIA——27E-mall、MIME;POP3、IMAP的选择,解答 http://t.csdnimg.cn/xnsXP

 HCIIA——28HTTP、万维网、HTML;万维网的工作过程;HTTP 的特点——无连接-TCP、无状态-Cookie、非持久连接-非流水线和流水线;HTTP 的报文结构                                                                                                      http://t.csdnimg.cn/cRcxY

  • 技术笔记 1遍
  • 有错误请指出,作者会及时改正

这篇关于python--5--len()的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/903800

相关文章

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

Python Websockets库的使用指南

《PythonWebsockets库的使用指南》pythonwebsockets库是一个用于创建WebSocket服务器和客户端的Python库,它提供了一种简单的方式来实现实时通信,支持异步和同步... 目录一、WebSocket 简介二、python 的 websockets 库安装三、完整代码示例1.

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

Python使用自带的base64库进行base64编码和解码

《Python使用自带的base64库进行base64编码和解码》在Python中,处理数据的编码和解码是数据传输和存储中非常普遍的需求,其中,Base64是一种常用的编码方案,本文我将详细介绍如何使... 目录引言使用python的base64库进行编码和解码编码函数解码函数Base64编码的应用场景注意

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.

Python+PyQt5实现多屏幕协同播放功能

《Python+PyQt5实现多屏幕协同播放功能》在现代会议展示、数字广告、展览展示等场景中,多屏幕协同播放已成为刚需,下面我们就来看看如何利用Python和PyQt5开发一套功能强大的跨屏播控系统吧... 目录一、项目概述:突破传统播放限制二、核心技术解析2.1 多屏管理机制2.2 播放引擎设计2.3 专

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

Python实现无痛修改第三方库源码的方法详解

《Python实现无痛修改第三方库源码的方法详解》很多时候,我们下载的第三方库是不会有需求不满足的情况,但也有极少的情况,第三方库没有兼顾到需求,本文将介绍几个修改源码的操作,大家可以根据需求进行选择... 目录需求不符合模拟示例 1. 修改源文件2. 继承修改3. 猴子补丁4. 追踪局部变量需求不符合很