list是python内置的一种有序、可变的数据结构。

一、如何创建一个list?

示例:

注意:

list中的元素可以是任意的数据类型如字符串、数字、布尔值、None等,也可以是其他的数据结构如另外一个list,tuple,dict等。

二、如何取出list中的元素?

1、取一个元素,用列表索引。

语法:list [ i ]。i 是索引位置。第一个元素索引值为0;i 也可以小于0,代表索引值从后往前取,如最后一个元素索引值为-1,倒数第二个为-2,如此类推。

示例:

2、取多个连续的元素,用列表切片。

语法:list [ start : end : step ] 。

start为开始切片的索引值;end为结束切片的索引值,这里切片取得的元素不包括索引为end的这个元素,即实际取得的元素是索引为start至end-1这些元素;step为切片的步距,默认step=1。

列表切片分为正向切片与反向切片,

正向切片:

反向切片:

这里有人会问,b = mylist[3:0]不是应该取出 [2,1,0]吗?其实这里跟step的取值有关。

当正向切片时,step必须大于0;当反向切片时,step必须小于0。

因为上面b = mylist[3:0]中的step默认为1,所以取出的是空列表。

所以我们想b = mylist[3:0]能正确取出[2,1,0],只要把step设置成-1就可以了。

由于这里start和end实际上是元素的索引值,所以这里start和end也可以是负数,只不过正向切片和反向切片也要遵守(当正向切片时,step必须大于0;当反向切片时,step必须小于0)这个规则就是了。所以step正负与索引值的正负无关,而与切片的方向有关。

注1:若start和end是第一个或者最后一个元素的索引值,可省略。

mylist[::-1]是常用的反转列表的方法。有人可能会问:为什么mylist[::-1]能够取得元素?不是说step必须与切片方向一致吗?

其实这里mylist[:] = mylist[0:] = mylist[-1:],所以这里的mylist[::-1] = mylist[-1::-1]。

注2:这里的列表索引与列表切片都是创建一个新的副本,而原列表不会发生变化。所以列表索引和列表切片必须要赋给一个新变量,否则新副本只会创建出来放在内存中而取不出来。

三、list的常用方法。

1、增:

(1)追加:在列表的末尾增加一个元素。语法:mylist.append(新元素)。

示例:

(2)插入:在列表任意位置插入一个新元素。语法:mylsit.insert(i, 新元素),i是想把新元素插入的索引值。

示例:

2、删:

(1)弹出:将列表里的任意一个元素弹出。语法:mylist.pop(i=-1),这里i的默认值为-1,即默认弹出最后一个元素。

这里为什么叫弹出?因为一般的列表方法都没有返回值,而是直接在原列表上进行改动,而pop方法是有返回值的,返回值就是弹出的元素,可以把返回值赋给一个新的变量。

示例:

(2)移除:删除列表中的任意一个元素。语法:mylist.remove(列表元素)。

弹出与移除比较:弹出参数为索引值而移除参数为列表元素;弹出有返回值而移除没有返回值。

示例:

3、扩展:将一个列表的元素全部加到另一个列表的末尾,即列表拼接。有点像append,但追加的是多个元素。语法:mylist.entend(another_list)。

示例:

4、排序:将列表中的元素按照顺序排列。语法:mylist.sort()

示例1:

示例2:

注:数字与字符串不能排列!

5、反转:将列表里面的顺序反转过来。语法:mylist.reverse()

示例:

四、list常用的内置函数。

1、len(list):计算列表长度。

2、sorted(list):列表排列,与mylist.sort()效果相同,唯一区别是sorted()是创建一个新的排列好的列表作为返回值。

3、reversed(list):列表反转,同上sorted()同等道理。

4、enumerate(list, start=0):枚举列表中的元素,返回一个tuple-enumerate对象。其中start参数控制枚举开始的序号,默认值为0.

示例1:

示例2:

5、zip(list1, list2):将两个长度相同的列表中的每个元素两两压缩成一起。返回一个tuple-zip对象。

示例:

具体参考:

1、《python核心编程(第二版)》:6.3 操作符;6.11 - 6.15 列表。

2、CSDN,afterrains - Python列表切片用法示例

--------本篇完!

5、python中的列表的更多相关文章

  1. julia与python中的列表解析.jl

    julia与python中的列表解析.jl #=julia与python中的列表解析.jl 2016年3月16日 07:30:47 codegay julia是一门很年轻的科学计算语言 julia文档 ...

  2. python中的列表及numpy数组排序

    一.列表排序  # python中对列表排序有sort.sorted两种方法,其中sort是列表内置方法,其帮助文档如下:In [1]: help(sorted) Help on built-in f ...

  3. Python中的列表解析和生成器表达式

    Python中的列表解析和生成器表达式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.列表解析案例 #!/usr/bin/env python #_*_coding:utf-8 ...

  4. Python中的列表生成式和多层表达式

    Python中的列表生成式和多层表达式 如何生成[1x1, 2x2, 3x3, ..., 10x10]的列表? L=[]; ,): L.append(x*x) print L print (" ...

  5. Python中的列表,元组,字符串之间的相互转化

    Python中的列表元组和字符串之间的相互转化需要利用,tuple(),list(),str(). 示例如下: >>> the_string = "hello I'am x ...

  6. Python中对列表排序实例

    Python中对列表排序实例 发布时间:2015-01-04 09:01:50 投稿:junjie 这篇文章主要介绍了Python中对列表排序实例,本文给出了9个List的排序实例,需要的朋友可以参考 ...

  7. 逗号分隔的字符串转换为Python中的列表 split

    将逗号分隔的字符串转换为Python中的列表   给定一个字符串: 它是由逗号分隔的几个值的序列: mStr = '192.168.1.1,192.168.1.2,192.168.1.3' 如何将字符 ...

  8. 12.python中的列表

    先看列表是如何创建的: a = ['scolia', 123] b = list('scolia',123) 同样有两种创建方式,但一般用第一种. 列表和元祖最大的不同就是列表是可以修改的. 老规矩, ...

  9. python 中的列表解析和生成表达式 - 转

    优雅.清晰和务实都是python的核心价值观,如果想通过操作和处理一个序列(或其他的可迭代对象)来创建一个新的列表时可以使用列表解析(  List comprehensions)和生成表达式,通过这两 ...

  10. Python学习笔记整理(五)Python中的列表.

    列表和字段,这两种类型几乎是Python所有脚本的主要工作组件.他们都可以在原处进行修改,可以按需求增加或缩短,而且包含任何种类的对象或者被嵌套. 一.列表 列表的主要属性: *任意对象的有序集合 从 ...

随机推荐

  1. C#与JAVA学习感悟

    C#与JAVA学习感悟 学完C#与JAVA,感觉收获良多.C#与JAVA这两门语言相似度很高(了解它们早期历史的人可能知道为什么),也许很多人在学习JAVA(或C#)时会同时学习C#(或JAVA),因 ...

  2. 【干货】JavaScript DOM编程艺术学习笔记1-3

    从7月29号到8月8号,断断续续地看完了这本书,做了部分实践联系.总体感觉本书真的只能算是个入门,学完之后看到库的那一章才感觉是个大坑,实践中大部分应该都是用的现成的库吧,所以还要重新学习一个库,但是 ...

  3. 创建一个自己的GitHub,创建自己的开源项目

    作者是一个大学在读学生,自己在平时的学习中,GitHub上的开源项目给自己提供了很大的帮助.GitHub是目前使用最广泛的分布式项目管理软件,GitHub上面托管了许多非常优秀的开源项目.我觉得每一个 ...

  4. webapplication发布

    在vs2010里写的 ASP.NET Web Application 发布步骤: ①:右击Web Application项目可以看到发布,弹出的对话框里选择要发布的路径,路径选择一个容易记住的地址即可 ...

  5. 捷宇高拍仪XY530 网页集成总结

    应甲方要求,需要把高拍仪集成到B/S系统中来,在集成过程中遇到的几点问题做为总结,以备查找. 1.甲方送来的高拍仪是淘宝上买来的,型号是XY530,功能非常简单,成像效果也很一般.如果没有其它要求,可 ...

  6. 最简单的基于FFMPEG的转码程序 —— 分析

    模块:  libavcodec    - 编码解码器         libavdevice   - 输入输出设备的支持         libavfilter   - 视音频滤镜支持         ...

  7. 2017.12.9 Java中的排序---冒泡排序、快速排序、选择排序

    //冒泡排序 public class demo{ public static void main(String[] args) { int[] sum={2,9,10,1,5,88}; System ...

  8. CUDA核函数参数示意:Kernel<<<Dg,Db, Ns, S>>>(param list)

    核函数是GPU每个thread上运行的程序.必须通过__gloabl__函数类型限定符定义.形式如下: __global__ void kernel(param list){  } 核函数只能在主机端 ...

  9. Map和Set -----JavaScript

    本文摘要:http://www.liaoxuefeng.com/ JavaScript的默认对象表示方式{}可以视为其他语言中的Map或Dictionary的数据结构,即一组键值对. 但是JavaSc ...

  10. Smallest Common Multiple-freecodecamp算法题目

    Smallest Common Multiple 1.要求 找出能被两个给定参数和它们之间的连续数字整除的最小公倍数. 2.思路 设定一个twoMultiple(a,b)函数,求出输入两个参数的最小公 ...