添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

index方法

为了能够找到元素在列表中的位置,我们通常会使用 list.index() 方法来元素的下标,但是这种方法有一个弊端,就是 当列表中出现重复元素的时候,index方法只会返回第一个元素的位置 ,代码如下

a = ["a","b","c","a","d","a"]
print(a.index("a"))#输出为0

通过上面的代码可以发现,index方法的返回值是一个整数,不存在是-1,这样我们就没办法获取多个下标的位置。当然你 可以通过

移除列表中的元素,然后再去寻找下一个元素的位置,当返回-1时结束 。或者,你还可以通过结合字典来做这些都是可以的,这里我要用一个更简单的方法,就是 利用numpy的where和argwhere 方法。

where方法

numpy提供了一个where方法,返回的是一个元组,里面包含了一个数组,数组中包含了符合条件元素的下标

import numpy as np
#将列表转换为numpy的数组
a = np.array(["a","b","c","a","d","a"])
#获取元素的下标位置
eq_letter = np.where(a == "a")
print(eq_letter[0])#[0 3 5]

argwhere方法

argwhere方法可以用来获取多维数组中元素的下标位置

import numpy as np
#将列表转换为numpy的数组
a = np.array([["a","b","c"],["a","d","a"]])
#获取元素的下标位置
eq_letter = np.where(a == "a")
print(eq_letter)#(array([0, 1, 1]), array([0, 0, 2]))

对于多维数组来说,使用 where 函数 返回的是一个元祖, 对于二维数组来说元祖的一个数组表示的是行索引第二个数组表示的是列索引, 而argwhere返回的是一个数组 ,如果将where返回的结果转换为数组,则两个数组正好互为转置数组

import numpy as np
#将列表转换为numpy的数组
a = np.array([["a","b","c"],["a","d","a"]])
#获取元素的下标位置
eq_letter = np.argwhere(a == "a")
print(eq_letter)
[[0 0]
 [1 0]
 [1 2]]

通过argwhere函数就可以精确获取元素的下标位置第一个参数代表行第二个参数代表列

Python的编程,我们希望找到某个元素在一个列表或者字符串的位置,通常使用.Index(x)方法,另外也可以对字符串使用.find(x)方法,但是无论是用.index(x) 或.find(x)方法,都只能返回第一个x出现的位置。如果x重复出现,如何能够快速查找处所有x的位置呢? 例如:有一个如下的列表L: >>> L=range(20)*3 [0, 1, 2, 3, 4 python 列表生成式的使用,list重复元素查找前言列表生成式list循环列表生成式list重复元素查找 本篇记录Python列表生成式的使用,以及列表重复元素的查找。 列表生成式 list循环 假如有一个列表[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],我们想找出list大于5的元素,最简单的方法是用list做循环: l = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] s = [] for a in l: if a > 5: s.append( Python 列表(list)提供了 index() 和 count() 方法,它们都可以用来查找元素。index() 方法用来查找某个元素列表出现的位置(也就是索引),如果该元素不存在,则会导致 ValueError 错误,所以在查找之前最好使用 count() 方法判断一下。index() 的语法格式为: 其,listname 表示列表名称,obj 表示要查找的元素,start 表示起始位置,end 表示结束位置。start 和 end 参数用来指定检索范围:index() 方法会返回元素所在列表 【问题描述】 一个列表可能含有重复元素,使用set()可以实现列表的去重处理,但是无法知道哪些元素重复的,下面的函数用于找出哪些元素重复了,以及重复的次数。 【问题解决】 from collections import Counter #引入Counter a = [29,36,57,12,79,43,23,56,28,11,14,15,16,37,24,35,17,24,33,1... 目录1、列表及基本操作2、元组及基本操作3、字典及基本操作4、集合及基本操作1、列表及基本操作列表是使用一对括号[]来进行包裹,间加上了字符串,我们管这些存在在列表的数据叫元素,多个元素之间我们使用逗号","来进行分割。在列表包含的元素上,我们不仅仅可以放入字符串,我们也可以放入其他的数据类型,比如整数、浮点数、另外一个列表,甚至是一个元组、字典和集合都可以,或者是这些数据类型混合放入都可...