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. objective-C学习笔记(五)函数成员:初始化器和析构器

    初始化器:init 对象初始化器: -(id)init 可以重载多个. 类型初始化器: +(id)initialize只能有一个. 对象初始化器: 初始化对象实例时,init通常和alloc(手动内存 ...

  2. visual studio 2013 使用IIS Express附加调试MVC5

    1.如何找到调试的站点的进程[由于图片无法上传,就不上传图片了] 2.vs运行的时候,在状态栏会存在一个IIS Express 进程,点击显示所有的应用程序,找到想要调试的程序的PID; 3.附加调试 ...

  3. U3D 自带navmesh自动寻路教学

    网易博客转载 博主:啊赵 unity自带寻路Navmesh入门教程(一) 说明:从今天开始,我阿赵打算写一些简单的教程,方便自己日后回顾,或者方便刚入门的朋友学习.水平有限请勿见怪.不过请尊重码字截图 ...

  4. 建造者模式->代码示例

    <?php interface Builder{ public function head(); public function body(); public function foot(); ...

  5. HDU2018-母牛的故事

    描述: 有一头母牛,它每年年初生一头小母牛.每头小母牛从第四个年头开始,每年年初也生一头小母牛.请编程实现在第n年的时候,共有多少头母牛? 代码: 第n年的牛,等于第n-1年的牛(已有的)+第n-3年 ...

  6. Centos rpm缺少依赖无法安装mysql5.5

    rpm -ivh mysql-5.5.22-2.1.i386.rpm --nodeps --force 缺少依赖导致rpm -ivh mysql-5.5.22-2.1.i386.rpm命令无法安装!

  7. centos6.5安装vsftpd

    开通FTP有gssftp和vsftpd二种,查了查,据说vsftpd更稳定和更安全.就用vsftpd吧. 什么是vsftpd vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序.特点是小 ...

  8. input file 模拟

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  9. C#代码模拟http发送get和post请求

    private string HttpPost(string Url, string postDataStr) { HttpWebRequest request = (HttpWebRequest)W ...

  10. JS 回到顶部

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...