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调用Orator ORM进行数据库操作

《Python调用OratorORM进行数据库操作》OratorORM是一个功能丰富且灵活的PythonORM库,旨在简化数据库操作,它支持多种数据库并提供了简洁且直观的API,下面我们就... 目录Orator ORM 主要特点安装使用示例总结Orator ORM 是一个功能丰富且灵活的 python O

Python使用国内镜像加速pip安装的方法讲解

《Python使用国内镜像加速pip安装的方法讲解》在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库,然而,在国内使用pip安装依赖时,往往会因为网络问题而导致速... 目录一、pip 工具简介1. 什么是 pip?2. 什么是 -i 参数?二、国内镜像源的选择三、如何

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

如何通过Python实现一个消息队列

《如何通过Python实现一个消息队列》这篇文章主要为大家详细介绍了如何通过Python实现一个简单的消息队列,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录如何通过 python 实现消息队列如何把 http 请求放在队列中执行1. 使用 queue.Queue 和 reque

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

使用Python快速实现链接转word文档

《使用Python快速实现链接转word文档》这篇文章主要为大家详细介绍了如何使用Python快速实现链接转word文档功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 演示代码展示from newspaper import Articlefrom docx import

Python Jupyter Notebook导包报错问题及解决

《PythonJupyterNotebook导包报错问题及解决》在conda环境中安装包后,JupyterNotebook导入时出现ImportError,可能是由于包版本不对应或版本太高,解决方... 目录问题解决方法重新安装Jupyter NoteBook 更改Kernel总结问题在conda上安装了

Python如何计算两个不同类型列表的相似度

《Python如何计算两个不同类型列表的相似度》在编程中,经常需要比较两个列表的相似度,尤其是当这两个列表包含不同类型的元素时,下面小编就来讲讲如何使用Python计算两个不同类型列表的相似度吧... 目录摘要引言数字类型相似度欧几里得距离曼哈顿距离字符串类型相似度Levenshtein距离Jaccard相

Python安装时常见报错以及解决方案

《Python安装时常见报错以及解决方案》:本文主要介绍在安装Python、配置环境变量、使用pip以及运行Python脚本时常见的错误及其解决方案,文中介绍的非常详细,需要的朋友可以参考下... 目录一、安装 python 时常见报错及解决方案(一)安装包下载失败(二)权限不足二、配置环境变量时常见报错及

Python中顺序结构和循环结构示例代码

《Python中顺序结构和循环结构示例代码》:本文主要介绍Python中的条件语句和循环语句,条件语句用于根据条件执行不同的代码块,循环语句用于重复执行一段代码,文章还详细说明了range函数的使... 目录一、条件语句(1)条件语句的定义(2)条件语句的语法(a)单分支 if(b)双分支 if-else(