精华内容
下载资源
问答
  • python列表索引与切片

    千次阅读 2019-01-31 19:06:16
    文章目录列表索引与切片1. 列表索引(查询)2. 列表切片(取出原列表的子列表,生成一个新的列表)3. 列表元素顺序反向4. 替换列表某段子列表5. 在列表开头插入元素 列表索引与切片 1. 列表索引(查询) # 正索引 ...

    列表索引与切片

    1. 列表索引(查询)

    # 正索引
    list=[1,2,3,4,5]
    print("第二个元素是:"+str(list[1]))
    
    第二个元素是:2
    
    # 负索引
    list=[1,2,3,4,5]
    print("倒数第二个元素是:"+str(list[-2]))
    
    倒数第二个元素是:4
    

    2. 列表切片(取出原列表的子列表,生成一个新的列表)

    list=[1,2,3,4,5]
    print("无间距取出列表:"+str(list[1:4]))
    print("有间距取子列表:"+str(list[0:5:2]))
    print("取出最后两个元素:"+str(list[-2:]))
    
    无间距取出列表:[2, 3, 4]
    有间距取子列表:[1, 3, 5]
    取出最后两个元素:[4, 5]
    

    3. 列表元素顺序反向

    list=[1,2,3,4,5]
    print("列表元素顺序反向:"+str(list[-1::-1]))
    
    列表元素顺序反向:[5, 4, 3, 2, 1]
    
    

    4. 替换列表某段子列表

    list=[1,2,3,4,5]
    list[0:2]=[9,8]
    print(list)
    
    [9, 8, 3, 4, 5]
    

    5. 在列表开头插入元素

    list=[1,2,3,4,5]
    list[:0]=[7,6]
    print(list)
    
    [7, 6, 1, 2, 3, 4, 5]
    
    展开全文
  • python列表索引

    千次阅读 2019-02-18 18:21:17
  • # 大佬们这个显示“list index out of range”(中文:列表索引超出范围) #怎么解决? ``` import cv2 recognizer = cv2.face.LBPHFaceRecognizer_create() recognizer.read("C:\work\AI\AI-picture\Face ...
  • 数据库索引 - 散列表索引

    千次阅读 2010-07-20 15:19:00
    静态散列表索引: 散列表索引的原理是:通过一个散列函数,将键值映射为一个整数,每个整数对应一个桶。桶中存放[键值,数据记录指针]对的数组。在最简单的情况下,一个桶的大小小于一个块,因此只需要一...

    静态散列表索引:

    散列表索引的原理是:通过一个散列函数,将键值映射为一个整数,每个整数对应一个桶。桶中存放[键值,数据记录指针]对的数组。在最简单的情况下,一个桶的大小小于一个块,因此只需要一次磁盘I/O就可以找到数据记录指针所在的块,然后在内存中扫描数组。合适的散列函数使每个桶分到的记录数相当,因此可以提高数据查询的平均时间。因为要经常运算,散列函数的计算复杂度应该比较简单。

    静态散列表索引的缺点:当一个桶过大,需要建立溢出块。如果一个索引中大部分的桶都有溢出块,将影响查找效率。因此引入了动态散列表索引:可扩展散列表,线性散列表。

    可扩展散列表索引

    可扩展散列表索引中,散列函数返回值的位数是可增长的。当程序判断到桶已经被充满,将分裂散列函数返回值加1。例如,新插入的散列值是1,但是桶1已经充满,则将原来的桶1被分裂成桶01和桶11,再将桶中原有记录和新记录分配到两个桶中。同时,散列值数组中的所有散列值也要相应分裂,数组大小翻倍。因为大部分的桶中的数据并没有增加,因此可能出现多个散列值指向同一个桶的情况。
    可扩展散列表索引的缺点:分裂散列值的代价过大。可能出现散列值数组大小远大于实际所需的情况。

    线性散列表索引

    线性散列表索引保持桶中的数据填充比率不超过某一个上限。
    在数据整体填充率已经达到上限的情况下插入新值,将增加一个新桶,把原有桶的数据分配到两个桶中,然后,再为新的数据按规则选择桶。例如,试图插入新键值的时候,原有的桶0和桶1已经达到填充上限,因此将桶0和桶1分别改名为00和01,在增加新桶10。现在,为新的数据按规则选择桶。目前已经存在00,01,10三个桶,且数据整体填充率没有达到上限,桶01将存放散列值末尾数为1的键值指针对(注意:尾数11的键值也放在这个桶中),桶00和桶10分别存放散列值末尾数为00和10的键值指针对。
    在数据整体填充率没有达到上限的情况下插入新值,如果新值所属的桶已经满了,则在该桶上建立溢出块,并插入新值。
    在数据整体填充率没有达到上限的情况下插入新值,如果新值所属的桶还没充满,则在该桶上插入新值。

    展开全文
  • python列表索引总结

    万次阅读 多人点赞 2019-06-03 19:17:25
    Python包含6种内建序列: 列表 元组 字符串 Unicode字符串 buffer对象 ...序列中的每个元素都有编号,即其位置或索引,其中第一个元素的索引为0,第二个元素的索引为1,依此类推。在有些编程语...

    Python包含6种内建序列:

    • 列表
    • 元组
    • 字符串
    • Unicode字符串
    • buffer对象
    • xrange对象

    1.数据结构

    数据结构是以某种方式(如通过编号)组合起来的数据元素(如数、字符乃至其他数据结构)集合。在Python中,最基本的数据结构为序列(sequence)。序列中的每个元素都有编号,即其位置或索引,其中第一个元素的索引为0,第二个元素的索引为1,依此类推。在有些编程语言中,从1开始给序列中的元素编号,但从0开始指出相对于序列开头的偏移量。这显得更自然,同时可回绕到序列末尾,用负索引表示序列末尾元素的位置。

    2.序列

    元组是一种特殊的序列,类似于列表,列表和元组的主要不同在于,列表是可以修改的,而元组不可以。这意味着列表适用于需要中途添加元素的情形,而元组适用于出于某种考虑需要禁止修改序列的情形。禁止修改序列通常出于技术方面的考虑,与Python的内部工作原理相关,这也是有些内置函数返回元组的原因所在。在你自己编写程序时,几乎在所有情况下都可使用列表来代替元组。一种例外情况是将元组用作字典键。在需要处理一系列值时,序列很有用。在数据库中,你可能使用序列来表示人,其中第一个元素为姓名,而第二个元素为年龄。如果使用列表来表示(所有元素都放在方括号内,并用逗号隔开),将类似于下面这样:

    >>> edward = ['Edward Gumby', 42]

    序列还可包含其他序列,因此可创建一个由数据库中所有人员组成的列表:

    >>> edward = ['Edward Gumby', 42]
    
    >>> john = ['John Smith', 50]
    >>> database = [edward, john]
    >>> database
    [['Edward Gumby', 42], ['John Smith', 50]]

    有几种操作适用于所有序列,包括索引、切片、相加、相乘和成员资格检查。另外,Python还提供了一些内置函数,可用于确定序列的长度以及找出序列中最大和最小的元素。

    3. 索引

    序列中的所有元素都有编号——从0开始递增。你可像下面这样使用编号来访问各个元素:

    >>> greeting = 'Hello'
    >>> greeting[0]
    'H'

    字符串就是由字符组成的序列。索引0指向第一个元素,这里为字母H。不同于其他一些语言,Python没有专门用于表示字符的类型,因此一个字符就是只包含一个元素的字符串。

    这称为索引(indexing)。你可使用索引来获取元素。这种索引方式适用于所有序列。当你使用负数索引时,Python将从右(即从最后一个元素)开始往左数,因此-1是最后一个元素的位置。

    >>> greeting[-1]
    'o'

    对于字符串字面量(以及其他的序列字面量),可直接对其执行索引操作,无需先将其赋给变量。这与先赋给变量再对变量执行索引操作的效果是一样的。

    >>> 'Hello'[1]
    'e

    如果函数调用返回一个序列,可直接对其执行索引操作。例如,如果你只想获取用户输入的年份的第4位,可像下面这样做:

    >>> fourth = input('Year: ')[3]
    Year: 2005
    >>> fourth
    '5'

    负数索引与正数索引之间存在一个规律:当正数索引+负数索引的绝对值=元素的个数,它们所指的是同一个元素。

    # Hello World!:总共有12个元素,含空格和标点符号
    print('Hello World!'[8]) # r
    print('Hello World!'[-4])# r

    4. 切片

     除使用索引来访问单个元素外,还可使用切片(slicing)来访问特定范围内的元素。为此,可使用两个索引,并用冒号分隔:

    >>> tag = '<ahref="http://www.python.org">Python web site</a>'
    >>> tag[9:30]
    'http://www.python.org'
    >>> tag[32:-4]
    'Python web site'

    如你所见,切片适用于提取序列的一部分,其中的编号非常重要:第一个索引是包含的第一个元素的编号,但第二个索引是切片后余下的第一个元素的编号。请看下面的示例:

    >>> numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    >>> numbers[3:6] [4, 5, 6]
    >>> numbers[0:1] [1]

    简而言之,你提供两个索引来指定切片的边界,其中第一个索引指定的元素包含在切片内,但第二个索引指定的元素不包含在切片内。

    4.1 绝妙的简写

    分片用于截取某个范围内的元素,通过:来指定起始区间(左闭右开区间包含左侧索引值对应的元素,但不包含右测索引值对应的元素)。假设你要访问前述数字列表中的最后三个元素,显然可以明确地指定这一点。

    >>> numbers[7:10]
    [8, 9, 10]

    在这里,索引10指的是第11个元素:它并不存在,但确实是到达最后一个元素后再前进一步所处的位置。明白了吗?如果要从列表末尾开始数,可使用负数索引。

    >>> numbers[-3:-1]
    [8, 9]

    然而,这样好像无法包含最后一个元素。如果使用索引0,即到达列表末尾后再前进一步所处的位置,结果将如何呢?结果并不是你想要的。事实上,执行切片操作时,如果第一个索引指定的元素位于第二个索引指定的元素后面(在这里,倒数第3个元素位于第1个元素后面),结果就为空序列。好在你能使用一种简写:如果切片结束于序列末尾,可省略第二个索引。

    >>> numbers[-3:]
    [8, 9, 10]

    同样,如果切片始于序列开头,可省略第一个索引。

    >>> numbers[:3]
    [1, 2, 3]

    实际上,要复制整个序列,可将两个索引都省略。

    >>> numbers[:]
    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

    4.2 更大的步长

    执行切片操作时,你显式或隐式地指定起点和终点,但通常省略另一个参数,即步长。在普通切片中,步长为1。这意味着从一个元素移到下一个元素,因此切片包含起点和终点之间的所有元素。

    >>> numbers[0:10:1]
    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

    在这个示例中,指定了另一个数。你可能猜到了,这显式地指定了步长。如果指定的步长大于1,将跳过一些元素。例如,步长为2时,将从起点和终点之间每隔一个元素提取一个元素。

    >>> numbers[0:10:2]
    [1, 3, 5, 7, 9]
    numbers[3:6:3]
    [4]

    显式地指定步长时,也可使用前述简写。例如,要从序列中每隔3个元素提取1个,只需提供步长4即可。

    >>> numbers[::4]
    [1, 5, 9]

    当然,步长不能为0,否则无法向前移动,但可以为负数,即从右向左提取元素。

    >>> numbers[8:3:-1]
    [9, 8, 7, 6, 5]
    >>> numbers[10:0:-2]
    [10, 8, 6, 4, 2]

    步长为负数时,第一个索引必须比第二个索引大。否则无法取值

    >>> numbers[0:10:-2]         
    []
    >>> numbers[::-2]
    [10, 8, 6, 4, 2]
    
    >>> numbers[5::-2]
    [6, 4, 2]
    >>> numbers[:5:-2]
    [10, 8]

    在这种情况下,要正确地提取颇费思量。如你所见,第一个索引依然包含在内,而第二个索引不包含在内。步长为负数时,第一个索引必须比第二个索引大。当你省略起始和结束索引时:步长为正数时,它从起点移到终点,而步长为负数时,它从终点移到起点。

    注意:数据的一些细微区别

    num = [1,2,3,4,5,6,7,8,9,10]
    num1 = num[-1] # 输出:10  type:int
    num2 = num[-1:]# 输出:[10] type:list

    ‘+’运算

    表示两个序列的相连,但是仅对相同类型的序列进行连接操作。举例:

    #列表
    >>> [1,2,3] + [3,2,1]
    [1, 2, 3, 3, 2, 1]
    #字符串
    >>> 'Hi' + ',' + 'Baby'
    'Hi,Baby'
    #元组(tuple)
    >>> ('This','is','a') + ('test','case')
    ('This', 'is', 'a', 'test', 'case')
    #如果序列类型不一致,则会报错
    >>> 'Hi' + [1,2]
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: cannot concatenate 'str' and 'list' objects


    ‘*’运算(乘)

    ‘*’运算表示生成一个元素重复多次的序列,乘法表示将指定序列重复N次以生成一个新的序列,None可以用来初始化序列。

    >>>print('hi '*5)
    'hi hi hi hi hi '
    >>> print("hello" * 3)
    'hellohellohello'
    >>> (1,2,3) * 4 # tuple类型
    (1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3)
    >>> [1,2,3] * 4 # list类型
    [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]
    >>> [None]*5 # none
    [None, None, None, None, None]
    >>> 4 * [1,2,3] # 支持交换律
    [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]

     

    参考:

    https://blog.csdn.net/jamfiy/article/details/87910881

    https://blog.csdn.net/qq_30622831/article/details/81704168

    https://blog.csdn.net/wang_weina/article/details/53613099

    展开全文
  • 用 Python实现 列表索引批量删除的5种方法 最近用Java做项目,使用到List broadcastInfos的 broadcastInfos.remove()方法,出现项目的重大失误,因为第一次使用Java语言,过于相信remove()方法,所以,不加思索的就...
  • 其实思路和获取列表索引的道理一样。如果你还不知道如何获取列表的索引,那么现在我先给大家介绍一下: 1. 大家都知道小程序的.wxss文件类似于css文件,主要用于处理视图的样式。所以,第一步,我们在.wxss文件中...
  • 用JS实现点击列表弹出列表索引的两种方式,方式一,使用利用事件冒泡委托给列表的父节点去处理的方式:代码如下:  方式一,使用利用事件冒泡委托给列表的父节点去处理的方式:    代码如下: var ulObj = ...
  • IndexError: list index out of range列表索引超出范围 例子如下: # -*- coding: utf-8 -*- if __name__=='__main__': s = ['1','2','3','4','5'] l =len(s) print "列表的长度:%d\n"%l for i i
  • Python 返回列表索引方法

    千次阅读 2020-05-01 07:32:25
    Python rfind()方法 描述 Python rfind() 返回字符串最后一次出现的位置(从右向左查询),如果没有匹配项则返回-1。 语法 ...rfind()方法语法: ...str.rfind(str, beg=0 end=len(string)) ... end -- 结束查找位置,默认...
  • 列表索引越界or空

    千次阅读 2018-07-02 16:27:55
    data = [1,8,5,9,7,4,5] print(data[10:]) #返回空 print(data[10]) #出错,越界
  • R:列表索引

    千次阅读 2014-10-27 09:10:08
    总共有三种方法访问列表lst中的组件c,返回值是c的数据类型: ●lst$c ●lst[[”c”]] #是双重中括号,中括号之间不能打空格 ●lst[[i]] #i是c在lst中的数字编号 注:列表分量常常会被编号,我们总是可以用...
  • Python Numpy数组使用列表索引

    千次阅读 2019-05-29 16:54:54
    # 第一个列表表示行数 第二个表示列数 # 选取第0行的第2列 3 # 选取第1行的第3列 8 # 返回的是ndarray(不是list) [3 8] print('data[[0, 1], [2, 3]] ', data[[0, 1], [2, 3]]) print('----------------------...
  • 求教:Python列表索引超出范围

    千次阅读 2019-10-15 11:03:41
    初学者,这是一个简单的代码 import sys from xlrd import open_workbook input_file = sys.argv[1] workbook = open_workbook(input_file) print(‘Number of worksheets:’,workbook.nsheets) ...
  • 示例代码: list1 = [1,2,3,[4,5,6,[7,8,9]]] for i,j in enumerate(list1): #i:下标,j:下标对应的值 print(i) print(j) print('*********') 输出结果:
  • 如果我们尝试访问白色并且如果使用print(color [5])访问白色 ,那么它将给我们一个错误,即IndexError:列表索引超出范围 。 Here we all can see that I’m trying to print the value of a list at an index ‘5...
  • Python列表索引为何从0始?

    千次阅读 2019-06-18 11:44:33
    一句话总结:索引从0开始,切片用法很优雅。 翻译精华如下: 我决定在Python中使用0-based索引方式的一个原因,就是切片语法(slice notation)。 让我们来先看看切片的用法。可能最常见的用法,就是“取前n位元素...
  • 利用python列表切片获取索引为偶数或奇数的项: # _*_ coding:utf-8 _*_ demo_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] print('索引为偶数的项:', demo_list[::2]) print('索引为奇数的项:', demo_list[1::2]) 运行...
  • 一:comboBox获取下拉列表值的索引使用方法:Ext.getCmp('id').getValue(); 指获取值:Ext.get('id').getValue(); 二:可以通过xtype的方式来定义一个comboBox xtype:'combo',   id:'msgType',   name:'msgType',...
  • 比如有一个列表,list1 = [a, b ,c ,d ,e]- 对R来说,负数索引表示在原有的列表中去除该索引对应的元素,如list[-1]就是在原有的列表中去除第1个元素,所以结果是 list1[-1] = [b, c, d, e](R中列表元素序号从1开始)...
  • 下面先看下我的效果图: 有需要的可以点击这里下载源码点我点我!!!
  • 这个可能是因为在取索引的时候列表里面没有元素了或者不够,那这样自然取不出来了,会报告说超出界限,这样子的话我们可以给这句代码一个if判断,让它如果里面有元素或元素够了才让它取出来,就不会报错了...
  • list = [‘a’,’b’,’c’] 想用for循环输出list的元素以及对应的索引。 代码及结果如下:
  • list1 = [1,2,'a','b',5,67,78,99,"ji"] list2 = [1,"a","b",2,87,34,67,"ji"...for i in range(len(list1)): for j in range(len(list2)): if list1[i] == list2[j]:#元素...
  • 前言:在上一篇文章里,我们介绍了if语句、elif语句和else语句以及条件判断语句。我们今天来说点流程控制之外的东西:列表列表类型
  • Python中列表索引 A[ : 2 ]与A[ : , 2]的区别

    万次阅读 多人点赞 2018-06-24 11:39:29
    它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。一、创建一个列表 构造list非常简单,按照上面的代码,直接用 [ ]把list的所有元素都括起来,就是一个list对象。通常,我们会把list赋值给一个变量,...
  • GLboolean glIsList (GLuint list); //如果list已经用于表示显示列表,这个函数返回GL_TRUE,否则返回GL_FALSE ... //删除range个显示列表,从list指定的索引开始 glGetIntegerv(GL_MAX_LIST_NESTING
  • Python 列表索引,切片,循环

    千次阅读 2018-07-31 16:12:00
    列表 索引 切片 for 循环 range() 函数 continue 关键字 for 循环中的 else 关键字 字符串拼接 &gt;&gt;&gt; 's' * 10 'ssssssssss' &gt;&gt;&gt; print("*" * 10) *****...
  • 你需要用最少的列表索引总和来帮助他们找出他们的共同兴趣。 如果最少列表索引总和的答案不唯一,则输出所有答案并且没有顺序要求。 你可以假设总有一个答案。 说明 1.两个列表的长度都将在[1,1000]的范围内。 2.两...
  • Python中列表索引的一个特殊用法

    千次阅读 2017-09-28 21:02:32
    Python中列表索引特殊用法x=[1,2,3,5,6,7,8,9] x[1:1000000] x [22222,66666]res:[1, 2, 3, 5, 6, 7, 8, 9] []首先是定义了一个列表,x=[1,2,3,5,6,7,8,9], 然后输入x[1:1000000],开始我以为会报索引越界的错误,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 630,370
精华内容 252,148
关键字:

列表索引