它会从指定的索引位置向后搜索,并返回最后一次出现指定子字符串的索引位置。如果在指定的索引位置之后没有找到子字符串,则返回 -1。...如果子字符串为空字符串或者搜索索引超出了字符串的长度,则返回字符串的长度。 以下是一个示例代码: String str = "Hello, World!"...例如,如果搜索字符 “y”,则返回字符 “y” 第一次出现的位置。...主要有以下几个用法: int indexOf(String str):从头开始查找指定子串在字符串中第一次出现的位置,返回相应的索引值。...在使用这些方法时,需要注意: 如果找到指定子串,返回对应的索引位置(索引从0开始)。 如果未找到指定子串,返回-1。 此外,指定了索引位置后,从该位置开始进行查找。
start: 可选参数,指定搜索的起始索引。 end: 可选参数,指定搜索的结束索引(不包括该索引)。...如果不指定索引,pop() 会删除并返回列表中的最后一个元素。 4.2.1 语法: list_name.pop(index) index: 可选参数,表示要删除元素的索引。...如果不提供 index,则默认删除最后一个元素。 4.2.2 示例: 1....无法返回被删除的元素。 pop(): 用于通过索引删除元素并返回被删除的元素。如果不提供索引,它会删除并返回最后一个元素。 remove(): 用于删除列表中第一次出现的指定元素(通过值删除)。..., 2]) print(nested_count) # 输出: 2 总结 count() 方法用于统计列表中某个元素的出现次数,如果元素不存在则返回 0。
值的正弦值 cos() 返回指定double值的余弦值 tan() 返回指定double值的正切值 asin() 返回指定double值的反正弦值值 acos() 返回指定double值的反余弦值 atan...(String str) 与另一个字符串进行比较,忽略大小写 String getAt(int index) 返回字符串索引位置的字符串 public int indexOf(int ch) 此字符串中指定子字符串第一次出现的索引...,可以指定搜索位置 Boolean matches(String regex) 正则匹配 String minus(Object value) 删除字符串的值部分 String next() 字符串中的最后一个字符...+1 String previous() 字符串中的最后一个字符-1 String padLeft(Number numberOfCharacters) 填充字符串,并在左侧附加空格,也可以指定填充的字符串......以来的毫秒数 7.正则表达式 用〜“regex”表示一个本地支持的正则表达式 当Groovy运算符=〜在if和while语句(见第8章)中作为谓词(返回布尔值的表达式)出现时,左侧的String
,不会影响原来的列表 起始和结束位置的索引都可以省略不写 如果省略结束位置,则会一直截取到最后 如果省略起始位置,则会从第一个元素开始截取 如果起始位置和结束位置全部省略,则相当于创建了一个列表的副本...语法:列表[起始:结束:步长] 步长表示,每次获取元素的间隔,默认值是1 步长不能是0,但是可以是负数 如果是负数,则会从列表的后部向前边取元素 employees = ['Yuki','Jack',...补充: 列表的索引可以是负数。如果索引是负数,则从后向前获取元素,-1表示倒数第一个,-2表示倒数第二个以此类推。 3....in 和 not in in用来检查指定元素是否存在于列表中 如果存在,返回True,否则返回False not in用来检查指定元素是否不在列表中 如果不在,返回True,否则返回False employees...两个方法(method)index() 和 count() 方法和函数基本上是一样,只不过方法必须通过对象.方法() 的形式调用 s.index() 获取指定元素在列表中的第一次出现时的索引 employees
如果列表为空或索引超出范围,则会引发IndexError。 8.L.remove(value) : 删除第一次出现的值。如果值不存在,就会引发ValueError。...1.D.values() : 返回字典中所有的值。 2.D.keys() : 返回字典中所有的键。 3.D.items() : 返回字典中的所有条目。...4.D.get(key[,default]) : 返回指定键的值,如果值不在字典中返回默认值值 。 5.D.copy(): 返回字典的潜复制。...6.D.pop(key[,default]) :删除指定的键并返回相应的值。如果没有找到该键,则返回默认值,否则会引发KeyError。...7.D.popitem(): 删除并返回一些(键,值)对作为2元组;但是如果D是空的,则抛出KeyError。 8.D.clear(): 删除字典中的所有条目。
13、字典的查询 14、字典的遍历 15、集合的定义 16、集合的相关操作 1、列表的查询 index:从左至右查询元素在列表中所处的位置,如果查询到该元素返回其第一次出现所在位置的正向下标,如果不存在则报错...count:查询指定元素在列表中出现的次数 in:查询指定元素是否在列表中 not in:查询指定元素是否不在列表中 # 索引查询 name_list = ['Bob', 'Jack', 'Rose'...正向索引从0开始,从左至右依次递增 # 负向索引,从-1开始,从右至左依次递减 # index 查询指定元素在列表中的索引,如果查询成功则返回该元素的正向索引,否则报错 # index 是从左至右查询...(使用下标),找到后使用del删除 pop:删除类表中指定下标位置的元素,如果不指定默认删除最后一个,并且返回被删除的值 remove:删除指定值的下标,只删除丛左至右的第一次出现的该值元素...(tuple7) 8、元组的相关操作 元组中的数据不能增删改,所以只能查询 元组的查询方式 索引查询:和列表的使用方式一致 index :从左至右查询指定元素在元组中第一次出现的位置索引,如果存在则返回正向索引
计数排序 讲解计数排序之前我们先来看一个问题:对列表进行排序,已知列表中的数的范围都在0-500之内,设计一个时间复杂度为O(n)的算法。...这就需要用到计数排序,顾名思义,记录某个元素出现了多少次 从左至右依次遍历列表,当某个元素出现时,将此元素出现次数加1,遍历完列表后根据元素出现次数将元素依次排开。...注:元素值从0开始方便列表索引计算 a = [1, 3, 2, 6, 5, 5, 1, 3, 4, 1] 元素值 出现次数 0 0 1 3 2 1 3 2 4 1 5 2 6 1 排序结果...:1 1 1 2 3 3 4 5 5 6 # 元素值1出现3次,排列3个1;元素值2出现1次,排列1次, 以此类推。...# 如果元素出现则对应count列表索引处+1 li.clear() # 直接清除原列表,不在生成新列表,节省内容空间 for index
1. find 存在返回索引 不存在返回-1 查找指定内容在字符串中是否存在,如果存在就返回该内容在字符串中第一次出现的开始位置索引值,如果不存在,则返回-1....mystr 中只包含空格,则返回 True,否则返回 False. mystr = '' print(mystr.isspace()) # False mystr是一个空字符串 mystr = '...'好'字出现三次 Copy 五、替换 替换字符串中指定的内容,如果指定次数count,则替换不会超过count次。...split 以指定字符串为分隔符切片,如果 maxsplit有指定值,则仅分隔 maxsplit+1 个子字符串 返回的结果是一个列表。...1. ljust 左对齐 返回指定长度的字符串,并在右侧使用空白字符补全(左对齐)。
L.index(obj) >>>从列表中找某个值第一个匹配项的索引位置 ? L.insert(index, obj) >>>插入元素,可以指定位置 ?...L.pop(index) >>>出栈,可以指定位置。index 默认是L[-1] ? L.remove(obj) >>>移除指定元素从左边开始的第一个 ?...index(obj) >>>从列表中找某个值第一个匹配项的索引位置 ? ③字符串的常用方法 s.count(x) >>>返回字符串 x 在 s 中出现的次数,带可选参数 ?...s.find(x) >>>返回字符串中出现 x 的最左端字符的索引值,如果不在则返回 -1 ?...s.index(x) >>>返回字符串中出现 x 的最左端的索引值,如果不在则抛出 valueError 异常 ?
它按item索引值进行删除,同时返回被删除的item值;若不指定索引,默认删除最后一个item: a_list.pop(1) //删除列表的第二个值,并返回被删除的值 a_list.pop()...示例列表:a_list = ['a','b','c','hello']: 判断值是否在列表中,in操作符: 'a' in a_list //判断值a是否在列表中,并返回True或False 判断值是否不在列表...,not in操作符: 'a' not in a_list //判断a是否不在列表中,并返回True或False 统计指定值在列表中出现的次数,count方法: a_list.count('a...') //返回a在列表中的出现的次数 查看指定值在列表中的位置,index方法: a_list.index('a') //返回a在列表中每一次出现的位置,默认搜索整个列表 a_list.index...('a',0,3) //返回a在指定切片内第一次出现的位置
timeout 从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它;如果列表没有元素会阻塞列表知道等待超时或发现可弹出元素为止 1.4、LINDEX key index 通过索引获取列表中的元素...如果 key 不存在,则 key 被解释为一个空列表,返回 0 . 如果 key 不是列表类型,返回一个错误。 1.7、LPOP key 移除并返回列表 key 的头元素。...1.10、LRANGE key start stop 返回列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定。...1.13、LTRIM key start stop 对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。...如果 source 和 destination 相同,则列表中的表尾元素被移动到表头,并返回该元素,可以把这种特殊情况视作列表的旋转(rotation)操作。
L.index(e):返回e第一次出现在L中时的索引值。如果e不在L中,则抛出一个异常(参见第7章)。 L.pop(i):删除并返回L中索引值为i的项目。如果L为空,则抛出一个异常。...如果i被省略,则i的默认值为-1,删除并返回L中的最后一个元素。 L.sort():升序排列L中的元素。 L.reverse():翻转L中的元素顺序。...s.find(s1):返回子字符串s1在s中第一次出现时的索引值,如果s1不在s中,则返回-1。 s.rfind(s1):功能与find相同,只是从s的末尾开始反向搜索(rfind中的r表示反向)。...s.index(s1):功能与find相同,只是如果s1不在s中,则抛出一个异常。 s.index(s1):功能与index相同,只是从s的末尾开始。...d[k]:返回d中键为k的项目。 d.get(k, v):如果k在d中,则返回d[k],否则返回v。 d[k] = v:在d中将值v与键k关联。如果已经有一个与k关联的值,则替换。
返回的是一个列表,如果只找到1个,返回的也是单个项目的列表格式。 我们已经知道返回第一次,最后一次以及所有的,那如果是返回第2次出现的需要如何操作呢?...如果我们知道要显示的位置则直接可以定位第几项,但是如果我们不知道,则可以使用List.Count函数先计算出总的列表里面的项目数,然后再计算位置并指定。...;第2参数是需要查找的值;第3参数是查找出现的位置(0代表第一次,1代表最后一次,2代表全部)默认第一次;第4参数是比较器;返回的是any,如果返回的是全部次数则是list格式。...;第2参数是需要查找值的列表;第3参数是查找出现的位置(0代表第一次,1代表最后一次,2代表全部)默认第一次);第4参数是比较器;返回的是any,如果返回的是全部次数则是list格式,未找到的话返回-1...先找到第2个1出现的位置。使用List.PositionOf({1,2,3,1,2},1,2){1},返回3,也就是列表的第4项。 之前的1位则在找到的基础上-1。
哈希表与哈希函数 在简单数组或列表中插入新数据时,插入数据的索引不是从要插入的值确定的。这意味着密钥(索引)和值(数据)之间没有直接关系。因此,如果需要在数组中搜索值,则必须在所有索引中进行搜索。...在哈希表中,您可以通过散列值来确定键或索引。这意味着密钥是根据值确定的,每次需要检查列表中是否存在该值时,您只需对值进行散列并搜索该密钥,查找速度非常快,时间复杂度为O(1)。 ?...如果要将数据添加到bloom过滤器,需要将其提供给k个不同的哈希函数,并在位向量中将这些位设置为1。在哈希表中使用单个哈希函数,因此只有一个索引作为输出。...因此总结得到: 如果我们搜索一个值并看到该值的散列值为零,那么该值肯定不在列表中。 如果所有散列索引都是1,则搜索的值可能在列表中。 布隆过滤器操作 基本布隆过滤器支持两种操作:测试和添加。...我们可以看到布隆过滤器可以在O(k)的时间内搜索元素,其中k是哈希函数的数量,查找速度非常快。 如果元素不在bloom过滤器中,那么我们肯定不需要继续查找。
比较规则: 首先比较两个列表的长度,长度大的列表大。 长度一样比较内容: 比较的时候是按照顺序比较的,只要能比较出大小,就不在往后进行了。...如果比较的元素是同类型的,则比较其值,返回结果(-1表示list1小,0表示相等,1表示list1大)。 如果两个元素不是同一种类型,数字小于字母 如果是数字,执行必要的数字强制类型转换,然后比较。...) # 从列表中找出指定元素第一次出现的位置。...如果存在,那么获取的是第二个参数的值。 dic1.get("name", "haha") 'xinghan' # 判断字典中是否存在指定的key,存在返回True,不存在返回False。...dic1.keys() ['gender', 'age', 'name'] # 如果字典中包含给定的键,则返回该键的值,否则返回为该键设置的值。
注意他们之间的使用区别并在不同情况下选取合适的序列 一、序列是什么 序列是一种数据存储方式,用来存储一系列的数据。 在内存中,序列就是一块用来存放多个值的连续的内存空间。...,如果未指定位置则默认操作列表最后一个元素 a = [10, 20, 30, 40, 50] b1 = a.pop() # 结果:b1=50 print(a, b1) # 结果:[10, 20, 30...list1 = [30, 40, 50] list2 = list1 print(list2) 访问 & 计数 访问: 通过索引直接访问元素 index()获得指定元素在列表中首次出现的索引 # 列表元素访问和计数...其中, start 和 end 指定了搜索的范围。...对以 LIFO(后进先出)顺序返回。如果 dict 为空,则引发 KeyError。
注意他们之间的使用区别并在不同情况下选取合适的序列 一、序列是什么 序列是一种数据存储方式,用来存储一系列的数据。 在内存中,序列就是一块用来存放多个值的连续的内存空间。...,如果未指定位置则默认操作列表最后一个元素 a = [10, 20, 30, 40, 50] b1 = a.pop() # 结果:b1=50 print(a, b1) # 结果:[10, 20, 30...list1 = [30, 40, 50] list2 = list1 print(list2) 访问 & 计数 访问: 通过索引直接访问元素 index()获得指定元素在列表中首次出现的索引 # 列表元素访问和计数...其中, start 和 end 指定了搜索的范围。...如果不为空,则将这个 bucket 的键对象计算对应散列值,和我们的散列值进行比较, 如果相等。则将对应“值对象”返回。 如果不相等,则再依次取其他几位数字,重新计算偏移量。
(3)获取元素索引 int indexOf(Object obj):获取obj在List集合中首次出现的索引位置,如果不存在则返回-1. int lastIndexOf(Object obj):获取obj...在List集合中最后出现的索引位置,如果不存在则返回-1. (4)删除和替换元素 Object remove(int index):删除[index]位置的元素。...boolean empty() 堆栈是否为空 int search(Object o) 对象到堆栈顶部的位置,以1为基数;返回值-1则表示此对象不在堆栈中 import java.util.EmptyStackException...boolean hasPrevious():如果逆向遍历列表,则判断往前是否还有元素。 Object previous():返回列表中的前一个元素。...int nextIndex():返回列表中后一个元素的索引。
find:用于查找子字符串在字符串中的第一次出现的位置。如果找到了子字符串,find() 返回子字符串的起始索引;如果未找到,则返回 -1。...由于 "powerful" 在 sentence 中的位置是从索引 12 开始的,因此输出结果为 12。如果要查找的子字符串在原字符串中出现多次,find() 方法只返回第一次出现的位置。...与 find() 不同的是,rfind() 返回的是子字符串最后一次出现的起始索引。如果未找到子字符串,它返回 -1。...由于 "Python" 最后一次出现在 sentence 中的位置是从索引 43开始的,因此输出结果为 43。index:用于查找子字符串在字符串中的第一次出现的位置。...返回的字符串即为左对齐后的结果。rjust:用于将字符串右对齐,并在左侧用指定字符(fillchar 参数指定,默认为空格)填充,以达到指定的宽度。
领取专属 10元无门槛券
手把手带您无忧上云