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

为什么list count()方法不从用zip()创建的列表中返回2?

在Python中,zip()函数用于将多个可迭代对象(如列表、元组、字符串等)按照索引位置进行打包,并返回一个由元组组成的迭代器。当用zip()函数创建列表后,其中的元素不再是元组,而是被打包在一起的子列表。

list.count()方法用于统计列表中某个元素出现的次数。它会遍历列表中的每个元素,然后返回该元素在列表中出现的次数。

然而,list.count()方法无法直接应用于由zip()函数创建的列表,因为这种情况下列表的元素是子列表而不是单个元素。对于子列表,list.count()方法会将子列表作为整体来计算,而不会进一步解析子列表中的元素。

示例代码如下:

代码语言:txt
复制
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']

# 使用zip()函数创建列表
zip_list = list(zip(list1, list2))
print(zip_list)
# 输出:[(1, 'a'), (2, 'b'), (3, 'c')]

# 尝试使用list.count()方法统计元素出现次数
count = zip_list.count(2)
print(count)
# 输出:0

# 实际上,zip_list.count()方法并没有报错,但返回的结果是0,因为子列表 (2, 'b') 在 zip_list 中并不存在

如果要统计由zip()函数创建的列表中某个元素出现的次数,可以使用其他方法,例如使用列表解析来展开子列表后再进行计数:

代码语言:txt
复制
# 统计由zip()函数创建的列表中某个元素出现的次数
count = sum(1 for sublist in zip_list for element in sublist if element == 2)
print(count)
# 输出:1

这里我们使用了一个列表解析,它遍历了zip_list中的每个子列表sublist,然后再遍历子列表中的每个元素element,并检查是否等于2。如果相等,则将计数器加1。最后,使用sum()函数将计数器的值求和,得到元素出现的总次数。

腾讯云相关产品和产品介绍链接地址:

请注意,上述链接仅作为参考,具体选择产品和服务应根据实际需求和情况进行评估。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

有没有那么一道题,让你真正理解了Python编程?

count()方法,能返回某个元素在列表中出现次数,具体用法如下: >>> arr = [,,,,,,,,,,,] >>> arr.count() # 元素8在数组arr中出现过2次 接下来,我们只需要遍历去重后各个元素...这里既然是要对每一个元素都调用列表count()这个方法,那就最适合用map函数取代for循环了。...,除非我们list()把这个生成器转成列表(实际上并不需要将生成器转为列表)。...zip() 函数创建一个生成器,用来聚合每个可迭代对象(迭代器、生成器、列表、元组、集合、字符串等)元素,元素按照相同下标聚合,长度不同则忽略大于最短迭代对象长度元素。...>>> m = map(arr.count, unique) >>> z = zip(unique, m) >>> z >>> list

76720

一道题让你从此真正理解Python编程

我们知道,列表对象自带一个count()方法,能返回某个元素在列表中出现次数,具体用法如下: >>> arr = [3,5,2,7,3,8,1,2,4,8,9,3] >>> arr.count(8)...这里既然是要对每一个元素都调用列表count()这个方法,那就最适合用map函数取代for循环了。...,除非我们list()把这个生成器转成列表(实际上并不需要将生成器转为列表)。...zip() 函数创建一个生成器,用来聚合每个可迭代对象(迭代器、生成器、列表、元组、集合、字符串等)元素,元素按照相同下标聚合,长度不同则忽略大于最短迭代对象长度元素。...(z) [(1, 1), (2, 2), (3, 3), (4, 1), (5, 1), (7, 1), (8, 2), (9, 1)] >>> list(z) [] 很显然,zip()函数返回也是生成器

37060
  • 一道题让你从此真正理解Python编程

    , 7, 8, 9} 第2步,统计每个数字在列表中出现次数 我们知道,列表对象自带一个count()方法,能返回某个元素在列表中出现次数,具体用法如下: >>> arr = [3,5,2,7,3,8,1,2,4,8,9,3...这里既然是要对每一个元素都调用列表count()这个方法,那就最适合用map函数取代for循环了。...(generator),可以像列表一样遍历,但无法像列表那样直观地看到各个元素,除非我们list()把这个生成器转成列表(实际上并不需要将生成器转为列表)。...zip() 函数创建一个生成器,用来聚合每个可迭代对象(迭代器、生成器、列表、元组、集合、字符串等)元素,元素按照相同下标聚合,长度不同则忽略大于最短迭代对象长度元素。...list(z) ​ ​ ​ [] 很显然,zip()函数返回也是生成器,只能用一次,过后即消失。

    57310

    100 个基本 Python 面试问题第四部分(81-100)

    Q-83:Python globals() 函数有什么? Q-84:为什么在 Python 中使用 zip() 方法? Q-85:Python 编程类或静态变量是什么?...enumerate() 函数将计数器变量附加到可迭代对象,并将其作为“枚举”对象返回。 我们可以直接在“for”循环中使用这个对象,或者通过调用 list() 方法将它转换成一个元组列表。...与集合不同,列表可以包含具有相同值项目。 在 Python 列表有一个count() 函数,它返回特定项目的出现次数。 计算单个项目的出现次数。...我们将使用列表推导式和count() 方法。它将打印每个项目的频率。...回到目录 ---- Q-100:在 Python 创建 NumPy 数组有哪些不同方法? 我们可以应用两种方法创建 NumPy 数组。 创建空数组第一种方法

    3.6K31

    2022-11-13:以下go语言代码,如何获取结构体列表以及结构体内指针方法列表?以下代码应该返回{“S1“:,“S2“:[],“S

    2022-11-13:以下go语言代码,如何获取结构体列表以及结构体内指针方法列表?以下代码应该返回{"S1":"M1","M2","S2":[],"S3":"M1","M3"},顺序不限。...S1M3方法不是指针方法,S3M2方法也不是指针方法,所以不能输出。...-11-13:这道题有人说反射,实际上反射是无法解决这个问题,原因是无法直接使用结构体。...要解析rust代码,go/ast、go/parser、go/token,要用到这三个包。使用场景是写框架。代码go语言编写。...(*ast.Ident).Namecase *ast.Ident: //普通方法//structName = decl.Recv.List[0].Type.

    1.2K10

    Python堪称神仙6个内置函数

    map(function,iterable) 比如我们先创建了一个函数来返回一个大写输入单词,然后将此函数应有到列表colors所有元素。...如上图所示,在实际使用Map函数会比for循环依次列表元素方法快1.5倍。 Reduce函数 当需要对一个列表进行一些计算并返回结果时,reduce()是个非常有用函数。...for count, element in result: print(f"迭代编号:{count},对应元素:{element}") Zip 函数 zip()函数用于将可迭代对象作为参数...,将对象对应元素打包成一个个元组,然后返回由这些元组组成列表[3]。...', 'cherry'] for item in zip(colors,fruits): print(item) 输出结果: 当我们使用zip()函数时,如果各个迭代器元素个数不一致,则返回列表长度与最短对象相同

    42030

    Python常见数据结构

    一旦创建了元组,元组对象就不能修改了: 如果元组某个对象是可变,比如列表,可以在原位进行修改: In [11]: tup[1].append(3) In [12]: tup Out[12]:...其中一个很有用就是count(也适用于列表),它可以统计某个值出现频率: In [34]: a = (1, 2, 2, 2, 3, 4, 2) In [35]: a.count(2) Out[35]...chunk in list_of_lists: everything = everything + chunk 排序 你可以sort函数将一个列表原地排序(不创建对象): In [61]...integer'} In [106]: d1['b'] Out[106]: [1, 2, 3, 4] 你可以检查列表和元组是否包含某个值方法,检查字典是否包含某个键: In [107]: 'b...name.count('e') >= 2] names_of_interest.extend(enough_es) 可以嵌套列表推导式方法,将这些写在一起,如下所示: In [162]: result

    81730

    Python 升级之路(三) 序列

    ()获得指定元素在列表中出现次数 len()返回列表长度,即列表包含元素个数 # 3. count()获得指定元素在列表中出现次数 print("20在列表中出现次数:", a.count(20...,我们可以使用 count() 方法返回0则表示不存在,返回大于0则表示存在 # 但是,一般我们会使用更加简洁 in 关键字来判断,直接返回 True 或 False a = [10, 20, 30...:", len(a)) print("指定元素出现个数:", a.count(8)) # 列表关于排序方法list.sorted()是修改原列表对象,元组没有该方法 # 如果要对元组排序,只能使用内置函数...(列表1,列表2,…)将多个列表对应位置元素组合成为元组,并返回这个zip对象 # zip(列表1,列表2,...)将多个列表对应位置元素组合成为元组,并返回这个zip对象 # 如果各个迭代器元素个数不一致...,则返回列表长度与最短对象相同 a = [1, 2, 3] b = [4, 5, 6] c = [7, 8, 9] d = zip(a, b, c) print(d) # <zip object at

    1.2K50

    【利用Python进行数据分析】3-Python数据结构、函数和文件

    其中一个很有用就是count(也适用于列表),它可以统计某个值得出现频率:  a = (1, 2, 2, 2, 3, 4, 2) a.count(2) # 4 1.2、列表  1.2.1、定义列表 ...它是键值对大小可变集合,键和值都是Python对象。创建字典方法之一是使用尖括号,冒号分隔键和值。 像访问列表或元组元素一样,访问、插入或设定字典元素。...检查列表和元组是否包含某个值方法,检查字典是否包含某个键。 可以del关键字或pop方法返回同时删除键)删除值。 ...dic(zip(lst1,lst2))  通常创建方法,利用循环创建:  mapping = {} for key, value in zip(key_list, value_list):     mapping...可以union方法,或者|运算符: 交集元素包含在两个集合

    86550

    三元表达式、列表推导式、字典生成式、生成器、递归

    目录 迭代器 可迭代对象 迭代器对象 for循环原理 三元表达式 列表推到式 字典生成式 zip()方法 描述 语法 返回值 生成器 生成器 递归 迭代器 可迭代对象 可迭代对象:可迭代对象,内置有...Python内置str、list、tuple、dict、set、file都是可迭代对象 迭代器对象 迭代器对象:执行可迭代对象__iter__方法,执行该方法会拿到返回值,这个返回值就是可迭代对象。...为什么要有迭代器对象:提供了一种不依赖索引取值手段。 特点: 内置__next__方法,执行该方法会拿到迭代器对象一个值。 内置__iter__方法,执行该方法会拿到迭代器本身。...() 函数用于将可迭代对象作为参数,将对象对应元素打包成一个个元组,然后返回由这些元组组成列表。...zip 方法在 Python 2 和 Python 3 不同:在 Python 3.x 为了减少内存,zip() 返回是一个对象。如需展示列表,需手动 list() 转换。

    39710

    Python 升级之路( Lv3 ) 序列

    ()获得指定元素在列表中出现次数 len()返回列表长度,即列表包含元素个数 # 3. count()获得指定元素在列表中出现次数 print("20在列表中出现次数:", a.count(20...,我们可以使用 count() 方法返回0则表示不存在,返回大于0则表示存在 # 但是,一般我们会使用更加简洁 in 关键字来判断,直接返回 True 或 False a = [10, 20, 30...:", len(a)) print("指定元素出现个数:", a.count(8)) # 列表关于排序方法list.sorted()是修改原列表对象,元组没有该方法 # 如果要对元组排序,只能使用内置函数...(列表1,列表2,…)将多个列表对应位置元素组合成为元组,并返回这个zip对象 # zip(列表1,列表2,...)将多个列表对应位置元素组合成为元组,并返回这个zip对象 # 如果各个迭代器元素个数不一致...,则返回列表长度与最短对象相同 a = [1, 2, 3] b = [4, 5, 6] c = [7, 8, 9] d = zip(a, b, c) print(d) # <zip object at

    2.9K21

    python-for-data-python基础

    如果内部存在列表等可变元素,则内部元素能够进行修改 元组元素能够通过索引进行访问 创建 使用小括号,元素之间逗号隔开;若只有元素,末尾也必须加上逗号:(5,) 通过tuple函数进行创建 tup...来使用,但是列表不可以 字典dict{} 特点 常用名字是哈希表或者关联数组 由键值对组成,键是不可变(哈希),值是可变 创建 通过dict函数 直接通过{}括号创建,中间逗号隔开 操作 删除...空集合只能通过set()创建 创建 set方法 通过{}直接创建,还带去重功能 方法 常见集合方法及其作用 方法 作用 add() 给一个集合增加元素,参数只能有一个:增加元素 update 原有集合自身和其他东西构成新集合...([1,3,4,2,6,5]) [1,2,3,4,5,6] zip 配对 将列表、元组或者其他序列元素进行配对组合,新建一个元组构成列表 ?...利用zip实现矩阵转置 list2 = [[1, 2], [3, 4], [5, 6]] list(zip(*list2)) [(1,3,5), (2,4,6)] map 方法中有两个参数,一个是函数

    1.3K20

    python列表、字典、元组、集合学习笔记

    len(list1):list1里对象个数 基本列表操作 创建一个列表: >>> list=[] >>> list=[1,2,'3',[]] >>> list [1, 2, '3', []] 列表取值...) >>> q deque(['5', 2, 3], maxlen=3) 取出列表最大值和最小值: 使用heapq模块nlargest,nsmallest方法来取出列表几个最大值和最小值,当然也可以使用...del dict 字典方法 查找字典键值是否存在,如果不存在可以设置返回值 >>> food.get('ham') 2 >>> dict.get('b') 2 >>> dict.get('0')...>>> dict.get('0','none') 'none' 创建字典方法: 1.最原始方法: dict={'name':'wanger','age':25} 2.按键赋值方法:...集合特点 集合元素和字典键一样不重复 集合元素为不可变对象 集合创建 >>> s=set('a') >>> a=set({'k1':1,'k2':2}) >>> b=(['y','e','

    2.3K30

    对pythonlist五种查找方法说明

    Python是有查找功能,五种方式:in、not in、count、index,find 前两种方法是保留字,后两种方式是列表方法。...string类型的话可用find方法去查找字符串位置: a_list.find(‘a’) 如果找到则返回第一个匹配位置,如果没找到则返回-1,而如果通过index方法去查找的话,没找到的话会报错...is not in list 如果该项目可能不在列表,您应该 首先检查它item in my_list(干净,可读方法),或 将index呼叫包裹在try/except捕获ValueError...二、enumerate() 大多数答案解释了如何查找单个索引,但如果项目在列表多次,则它们方法不会返回多个索引。...pythonlist五种查找方法说明就是小编分享给大家全部内容了,希望能给大家一个参考。

    2.2K30

    python基础知识

    for 驱动可迭代对象调用 iter()返回了一个有next()方法迭代器对象(可以通过 next()访问),该方法可以逐一访问对象所有元素。...生成自然数列 其他迭代方法 zip range 函数返回都是一个可迭代对象,因此可以使用 for ……in 结构遍历。...: #创建一个任意长度列表并求取列表任意位置值 from turtle import numinput n=int(input("请输入列表总长度n:")) numlist=[] while...,进行进一步优化 letter_counts={letter:word.count(letter) for letter in set(inputstring)} 类似地还可以建立集合推导式(列表生成式...’[]’,元组’{}’,字典解析式也是’{}'不过要表示成键值对形式),但需要注意是元组是没有推导式返回是一个生成器对象。

    58920

    【数据分析从入门到“入坑“系列】利用Python学习数据分析-Python数据结构-2

    创建字典方法之一是使用尖括号,冒号分隔键和值: In [101]: empty_dict = {} ​ In [102]: d1 = {'a' : 'some value', 'b' : [1, 2...an integer'} ​ In [106]: d1['b'] Out[106]: [1, 2, 3, 4] 你可以检查列表和元组是否包含某个值方法,检查字典是否包含某个键: In [107]:...'b' in d1 Out[107]: True 可以del关键字或pop方法返回同时删除键)删除值: In [108]: d1[5] = 'some value' ​ In [109]: d1...虽然键值对没有顺序,这两个方法可以相同顺序输出键和值: In [117]: list(d1.keys()) Out[117]: ['a', 'b', 7] ​ In [118]: list(d1.values...name.count('e') >= 2] names_of_interest.extend(enough_es) 可以嵌套列表推导式方法,将这些写在一起,如下所示: In [162]: result

    94030
    领券