本文将重点梳理列表及列表操作。


2.1  list函数

2.2  基本列表操作

2.3  列表方法


2.1  list函数

  >>>list('hello')

  ['h','e','l',l','o']

注:list函数适用于所有类型的序列,而不只是字符串。

2.2  基本列表操作

  2.2.1  改变列表:元素赋值

  >>>x = [1,3,5]

  >>>x[0] = 'a'

  >>>x

  ['a',3,5]

注:不能对不存在的元素赋值,即x[0]~x[2]存在,可赋值,x[3]不存在,不可赋值。

  2.2.2  删除元素

  >>>names = ['jack','bob','tom','alice']

  >>>del names[1]

  >>>names

  ['jack','tom','alice']

  2.2.3  分片赋值

  >>>name = 'anthony'

  >>>namelist = list(name)

  ['a','n','t','h','o','n','y']

  #步长为1时,替换原分片位置为赋值列表

  >>>namelist[1:3] = ['a','b','c']

  ['a', 'a', 'b', 'c', 'h', 'o', 'n', 'y']

  #步长为2时,赋值列表长度必须与原分片元素数一致

  >>>namelist[::2] = [1,2,3]

  Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
  ValueError: attempt to assign sequence of size 3 to extended slice of size 4

  >>>namelist[::2] = [1,2,3,5]

  >>>namelist

  [1, 'a', 2, 'c', 3, 'o', 5, 'y']

  #分片操作可以实现删除序列功能

  >>>namelist[1:] = []

  >>>namelist

  ['a']

2.3  列表方法

  2.3.1  append

  #append方法实现列表末尾追加新的对象;

   >>>lst = ['a','b',4]

   >>>lst.append('a')

   ['a', 'b', 4, 'a']

  #直接修改原列表

  2.3.2  count

  #count方法统计某个元素在列表中出现的次数;

   >>>lst.count('a')

   2

   

  2.3.3  extend

    #extend方法实现在列表的末尾追加另一个序列中的多个值;

    >>>lst2 = [1,2,3]

    >>>lst.extend(lst2)

    >>>lst

    ['a', 'b', 4, 'a', 1, 2, 3]

    #extend方法不同于级联操作”+“,extend方法是在原列表直接修改,而“+”操作是返回一个新的列表

    >>>a = ['a','a','b']

    >>>b = [1,2,3]

    >>>a+b

    ['a','a','b',1,2,3]

    >>>a

    ['a','a','b']

  2.3.4  index

    #index方法用于寻找列表中某个值第一个匹配项的索引位置;

    >>>names = ['jack','tom','alice','rose','timor']

    >>>names.index('jack')

    0

    >>>names.index('sam')

    Traceback (most recent call last):
        File "<stdin>", line 1, in <module>
    ValueError: 'sam' is not in list

  2.3.5  insert

    #insert方法用于将对象插入列表中;

    >>>numbers = [1,2,3,4,5,6,7]

    >>>numbers.insert(3,'a')

    >>>numbers

    [1,2,3,'a',4,5,6,7]

    #同样可以用分片操作完成

    >>>numbers[3:3] = ['a']

    [1,2,3,'a','a',4,5,6,7]

  2.3.6  pop

    #pop方法会移除列表中的一个元素(默认最后一个);

    >>>x = [1,2,3]

    >>>x.pop()

    3

    >>>x

    [1,2]

    >>>x.pop(0)

    1

    >>>x

    [2]

  2.3.7  remove

   #remove方法用于移除列表中某个值的第一个匹配项;

    >>>x = ['alice','tome','time','jack']

    >>>x.remove('alice')

    [tome','time','jack']

  2.3.8  reverse

    #reverse方法将列表中的元素逆向存放;

    >>>x = [1,3,5]

    >>>x.reverse()

    >>>x

    [5,3,1]

  2.3.9  sort

    #sort方法在原位置进行排序;

    >>>x = [4,6,9,7,8]

    >>>x.sort()

    >>>x

    [4,6,7,8,9]

    #sort方法无返回值,因此,y = x.sort() 返回值为None

python数据结构(二)------列表的更多相关文章

  1. python数据结构-数组/列表/栈/队列及实现

    首先 我们要分清楚一些概念和他们之间的关系 数组(array)  表(list)  链表(linked list)  数组链表(array list)   队列(queue)  栈(stack) li ...

  2. python 数据类型二 (列表和元组)

    一.列表 1.1 列表的介绍 列表是python的基本数据类型之一,其他编程语言也有类似的数据类型,比如JS中的数组,java中的数组等等,它是以[]括起来,每个元素用逗号隔开,而且可以存放各种数据类 ...

  3. Python数据结构之列表、元组及字典

    一位大牛Niklaus Wirth曾有一本书,名为<Algorithms+Data Structures=Programs>,翻译过来也就是算法+数据结构=程序.而本文就是介绍一下Pyth ...

  4. Python数据结构之列表

    1.Python列表是Python内置的数据结构对象之一,相当于数组 2.列表用[] 包含,内有任意的数据对象,每一个数据对象以 ,逗号分隔,每隔数据对象称之为元素 3.Python列表是一个有序的序 ...

  5. Python数据结构:列表、元组和字典

    在Python中有三种内建的数据结构——列表list.元组tuple和字典dict 列表中的项目包括在方括号中,项目之间用逗号分割 元组和列表十分类似,只不过元组和字符串一样是不可变的 即你不能修改元 ...

  6. python语言(二)列表、字典、集合、文件读写、关系测试

    1.列表 list   代码 s = '王宇建,苏红,邹存才...' # 列表 数字 list l = ['王宇建','苏红','邹存才'] # 一维数组 二维数组 三维数组 # 0 1 2 # 索引 ...

  7. Python数据结构 将列表作为栈和队列使用

    列表作为栈使用 Python列表方法使得列表作为堆栈非常容易,最后一个插入,最先取出(“后进先出”).要添加一个元素到堆栈的顶端,使用 append() .要从堆栈顶部取出一个元素,使用 pop()  ...

  8. Python数据结构——散列表

    散列表的实现常常叫做散列(hashing).散列仅支持INSERT,SEARCH和DELETE操作,都是在常数平均时间执行的.需要元素间任何排序信息的操作将不会得到有效的支持. 散列表是普通数组概念的 ...

  9. Python数据结构:列表、字典、元组、集合

    列表:shoplist = ['apple', 'mango', 'carrot', 'banana']字典:di = {'a':123,'b':'something'}集合:jihe = {'app ...

  10. Python数据结构之四——set(集合)

    Python版本:3.6.2  操作系统:Windows  作者:SmallWZQ 经过几天的回顾和学习,我终于把Python 3.x中的基础知识介绍好啦.下面将要继续什么呢?让我想想先~~~嗯,还是 ...

随机推荐

  1. Linux 文件目录管理命令

    1.touch 用于设置空白文件或设置文件时间 touch命令参数及作用 参 数                                                             ...

  2. 如何能快速的成为一个年薪20万的Java程序员,你都需要具备哪些技术?史上最全的java学习路线!

    看好了,绝对不是单纯的初级视频,一个朋友在某机构学习,把每天老师讲课的视频代码和笔记全部整理出来了,需要的抓紧时间联系我! 一级目录截图   其中还包含时下最火的分布式和外服务的技术哦,请看07和08 ...

  3. Java面试题 BAT 大公司面试题整理总结!

    本文只列出了问题,答案还是需要需要自己的总结,很多时候自己总结出来的语言在面试时比硬背的效果好很多. 这些题目是网友去百度.小米.乐视.美团.58.猎豹.360.新浪.搜狐等一线互联网公司面试被问到的 ...

  4. Java中ArrayList的删除元素总结

    Java中循环遍历元素,一般有for循环遍历,foreach循环遍历,iterator遍历. 先定义一个List对象 List<String> list = new ArrayList&l ...

  5. centos 7安装vnc服务端&vnc客户端连接

    前言 工作需求,需要用到vnc,介绍一下相关内容. 安装vnc服务端 在执行其他相关的之前,需要先安装一下vnc的服务端,命令如下: yum install tigervnc-server 配置vnc ...

  6. JS写一个简单日历

    JS写一个日历,配合jQuery操作DOM <!DOCTYPE html> <html> <head> <meta charset="UTF-8&q ...

  7. 【396】python 递归练习题(COMP9021)

    Merging two strings into a third one Say that two strings s1 and s2 can be merged into a third strin ...

  8. C# 异步示例代码

    在 使用BackgroundWorker组件 一文中,阐述了在Winform编程中,使用BackgroundWorker组件实现异步调用,本文主要讲述利用委托实现异步. 以下描述摘抄于MSDN: 异步 ...

  9. layui表格点击排序按钮后,表格绑定事件失效解决方法

    最近项目使用layui较为频繁,遇到了一个麻烦的问题,网上搜索也没有看到同类型的问题,故此记下来. 需求是点击上图右侧表格中某一个单元格,会触发点击事件如下代码: $("table>t ...

  10. 简单搭建一个SpringBoot

    1.SpringBoot下载 https://start.spring.io/ 选择工程类型,编译语言,版本,工程名称,需要支持组件等:选择好了以后点击生成项目. 之后会下载一个压缩文件,解压之后导入 ...