list的下标和子list

list的下表从零开始,和C语言挺类似的,但是增加了负下标的使用。

-len-----第一个元素

......       ......
-2 ------ 倒数第二个元素

-1 ------ 最后一个元素

0 ------ 第一个元素

len-1 ------ 最后一个元素

>>> a=[0,1,2,3,4,5,6,7]
>>> a
[0, 1, 2, 3, 4, 5, 6, 7]
>>> i = -len(a)
>>> i
-8
>>> while i < len(a):
print "a[",i,"]=",a[i] SyntaxError: invalid syntax
>>> while i < len(a):
"a[" , i , "]=" , a[i]
i += 1 ('a[', -8, ']=', 0)
('a[', -7, ']=', 1)
('a[', -6, ']=', 2)
('a[', -5, ']=', 3)
('a[', -4, ']=', 4)
('a[', -3, ']=', 5)
('a[', -2, ']=', 6)
('a[', -1, ']=', 7)
('a[', 0, ']=', 0)
('a[', 1, ']=', 1)
('a[', 2, ']=', 2)
('a[', 3, ']=', 3)
('a[', 4, ']=', 4)
('a[', 5, ']=', 5)
('a[', 6, ']=', 6)
('a[', 7, ']=', 7)

子list的提取:

可通过下标指定范围,用于提取出一个list的一部分。下标表明位置,一个是起始位置,一个是结束位置,中间使用冒号分割,如果不指定起始位置,则默认从0开始,如果不指定结束位置,结束位置为-1,子list表示包括起始位置处的元素,一直到结束位置,单数不包括结束位置的元素。负下标也可以参与下标的表示:

>>> a
[0, 1, 2, 3, 4, 5, 6, 7]
>>> b = a[1:4]
>>> b
[1, 2, 3]
>>> b = a[1:-1]
>>> b
[1, 2, 3, 4, 5, 6]
>>> b = a[1:]
>>> b
[1, 2, 3, 4, 5, 6, 7]
>>> b = a[:]
>>> b
[0, 1, 2, 3, 4, 5, 6, 7]
>>>

改变新的子list的值,不会改变原来list的值

处理list的方法:

>>> #list.append(n),追加元素
>>> a
[0, 1, 2, 3, 4, 5, 6, 7]
>>> a.append(6)
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 6]
>>> #list.count(var) , 计算var在list中出现的次数
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 6]
>>> a.count(6)
2
>>>
>>> #len(list) , 返回list的长度
>>> len(a)
9
>>> #list.extend(list1) , 将list1追加到list的后面
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 6]
>>> b = [a,c,d,f,g]
Traceback (most recent call last):
File "<pyshell#55>", line 1, in <module>
b = [a,c,d,f,g]
NameError: name 'c' is not defined
>>> b = ['a' , 'b' , 'c' , 'd']
>>> b
['a', 'b', 'c', 'd']
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 6]
>>> a.extend(b)
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 6, 'a', 'b', 'c', 'd']
>>> a.append(b)
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 6, 'a', 'b', 'c', 'd', ['a', 'b', 'c', 'd']]
>>>
>>> #list.index(var) , 返回var在list中的位置,若无,则抛出异常
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 6, 'a', 'b', 'c', 'd', ['a', 'b', 'c', 'd']]
>>> a.index('x')
Traceback (most recent call last):
File "<pyshell#67>", line 1, in <module>
a.index('x')
ValueError: 'x' is not in list
>>> a.index(4)
4
>>> a.index(6)
6
>>>
>>> #list.insert(index,var) , 在index出插入var,其余元素向后推,如果index大于list的长度,就会在后面添加。如果index小于0,就要在最开始出添加
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 6, 'a', 'b', 'c', 'd', ['a', 'b', 'c', 'd']]
>>> a.insert(0,1)
>>> a
[1, 0, 1, 2, 3, 4, 5, 6, 7, 6, 'a', 'b', 'c', 'd', ['a', 'b', 'c', 'd']]
>>> a.insert(100,100)
>>> a
[1, 0, 1, 2, 3, 4, 5, 6, 7, 6, 'a', 'b', 'c', 'd', ['a', 'b', 'c', 'd'], 100]
>>>
>>> #list.pop() , 返回最后一个元素,并且删除最后一个元素。list.pop(index) , 返回index处的元素,并且删除该元素。
>>> a
[1, 0, 1, 2, 3, 4, 5, 6, 7, 6, 'a', 'b', 'c', 'd', ['a', 'b', 'c', 'd'], 100]
>>> a.pop()
100
>>> a
[1, 0, 1, 2, 3, 4, 5, 6, 7, 6, 'a', 'b', 'c', 'd', ['a', 'b', 'c', 'd']]
>>> a.pop()
['a', 'b', 'c', 'd']
>>> a
[1, 0, 1, 2, 3, 4, 5, 6, 7, 6, 'a', 'b', 'c', 'd']
>>> a.pop(0)
1
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 6, 'a', 'b', 'c', 'd']
>>>
>>> #list.remove(var) , 找到var并且删除它,若无,则抛出异常
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 6, 'a', 'b', 'c', 'd']
>>> a.remove(9)
Traceback (most recent call last):
File "<pyshell#98>", line 1, in <module>
a.remove(9)
ValueError: list.remove(x): x not in list
>>> a.remove(6)
>>> a
[0, 1, 2, 3, 4, 5, 7, 6, 'a', 'b', 'c', 'd']
>>> #list.reverse() , 将list倒序
>>> a
[0, 1, 2, 3, 4, 5, 7, 6, 'a', 'b', 'c', 'd']
>>> a.reverse()
>>> a
['d', 'c', 'b', 'a', 6, 7, 5, 4, 3, 2, 1, 0]
>>> #list.sort() , 将list进行排序,a中元素若类型不同,结果自己看看一下,但是一般不会这么做
>>> a
['d', 'c', 'b', 'a', 6, 7, 5, 4, 3, 2, 1, 0]
>>> a.sort()
Traceback (most recent call last):
File "<pyshell#107>", line 1, in <module>
a.sort()
TypeError: unorderable types: int() < str()
>>> a = [1,3,2,4,5,6,3,2,1]
>>> a
[1, 3, 2, 4, 5, 6, 3, 2, 1]
>>> a.sort()
>>> a
[1, 1, 2, 2, 3, 3, 4, 5, 6]
>>>

Python 中的list小结的更多相关文章

  1. python中GUI使用小结

    1 先来个简单的 import wx app = wx.App() frm = wx.Frame(None, title="Hello World") frm.Show() app ...

  2. python中的__init__ 、__new__、__call__小结

    这篇文章主要介绍了python中的__init__ .__new__.__call__小结,需要的朋友可以参考下 1.__new__(cls, *args, **kwargs)  创建对象时调用,返回 ...

  3. Python中使用多进程来实现并行处理的方法小结

    进程和线程是计算机软件领域里很重要的概念,进程和线程有区别,也有着密切的联系,先来辨析一下这两个概念: 1.定义 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和 ...

  4. python中执行shell命令的几个方法小结(转载)

    转载:http://www.jb51.net/article/55327.htm python中执行shell命令的几个方法小结 投稿:junjie 字体:[增加 减小] 类型:转载 时间:2014- ...

  5. python中执行命令的3种方法小结-乾颐堂

    目前我使用到的python中执行cmd的方式有三种: 1. 使用os.system("cmd") 特点是执行的时候程序会打出cmd在linux上执行的信息. import os o ...

  6. python中的字典内置方法小结

    #!/usr/local/bin/python3 # -*- coding:utf-8 -*- #key-value #dict 无序,无下标,不需要下标,因为有key stu={ 'stu001': ...

  7. 关于python中lambda 函数使用小结

    例子: 如果定义普通函数,一般都是这样写: def:ds(x): return 2*x+1 调用即: ds(5) 如果用lambda函数就是这么写,就是一句话: g =lambda x:2*x+1 调 ...

  8. python中的变量引用小结

    python的变量都可以看成是内存中某个对象的引用.(变量指向该内存地址存储的值) 1.python中的可更改对象和不可更改对象 python中的对象可以分为可更改(mutable)对象与不可更改(i ...

  9. Python自然语言处理工具小结

    Python自然语言处理工具小结 作者:白宁超 2016年11月21日21:45:26 目录 [Python NLP]干货!详述Python NLTK下如何使用stanford NLP工具包(1) [ ...

随机推荐

  1. 内置的材质包含文件 .cginc

    Unity中包含几个文件,可以用于你的Shader程序,里面包含了预定义的变量和辅助函数.使用它需要用 #include指令 CGPROGRAM // ... #include "Unity ...

  2. margin 属性的相关问题

    1.margin 的IE6 双边距问题 问题描述:浮动的块挨边框的时候会产生双倍的边距 解决方案: 1.增加display:inline; 2.去除float属性 2.margin 的重叠问题 CSS ...

  3. Delphi中取整函数Round的Bug解决

    Delphi中 Round函数有个Bug一旦参数是形如 XXX.5这样的数时如果 XXX 是奇数 那么就会 Round up如果 XXX 是偶数 那么就会 Round down例如 Round(17. ...

  4. FastJson中@JSONField注解使用

    最近做项目中,使用了json格式在服务器之间进行数据传输.但是发现json格式数据不符合JAVA中的变量定义规则,并且难以理解,因此需要在后台中做二次处理,将数据处理成我们系统中定义的格式. 思路: ...

  5. 面试题:在O(1)时间删除链表结点

    题目:给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点. 链表结点与函数的定义如下: struct ListNode { int m_nValue; ListNode* m_p ...

  6. JAVA GUI学习 - JOptionPane对话框组件学习

    /** * 对话框 - 学习笔记 * @author Wfei * */ public class JoptionPaneKnow extends JFrame { public JoptionPan ...

  7. File,FileInputStream,FileReader,InputStreamReader,BufferedReader 的使用和区别

    1 ) File 类介绍 File 类封装了对用户机器的文件系统进行操作的功能.例如,可以用 File 类获得文件上次修改的时间移动, 或者对文件进行删除.重命名.换句话说,流类关注的是文件内容,而 ...

  8. JS动态增加页面上的控件实例

    <input   type="button"   value="继续添加"   onclick="append();"/ > & ...

  9. DOC下编译和运行带有包的java类文件

    前言: 带有包名的java类在DOC下编译可以成功,但是运行出错  错误: 找不到或无法加载主类 com.soanl.socket.MyServer D盘temp文件下有个Hello.java文件,包 ...

  10. POJ 3228Gold Transportation(二分+最大流)

    题目地址:POJ3288 这个题跟之前的一道题混了,感觉是一样的,所以连想都没怎么想就拆点然后求最短路然后二分求最大流了.结果连例子都只是,还一直以为又是哪里手残了..结果看了看例子,手算也确实不正确 ...