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. 关于TableViewCell高度自适应问题的整理

    TableViewCell高度自适应在网上有很多资料,我只想找出最最最简单的一种方法. 首先梳理一下思路.说到TableViewCell我们第一个想到的问题或许就是cell的复用问题. 1.  [se ...

  2. MSSQL随机数概率测试

    随机概率测试 创建一个表统计create table t_test(ip char(15)) --truncate table t_test; declare @i int ;set @i=0; -- ...

  3. Git使用方法记录(一)

    记录下git的基本使用方法,这里是以ubuntu14.04为例. 1,使用前的初始设置 git config –global user.name “FirstName LastName” git co ...

  4. PROTEL99生成GERBER的操作说明

    GBL BOTTOM LAYER(底层布线图)GBO BOTTOM OVERLAYER(底层丝印层)GBP BOTTOM PASTE LAYER(底层锡膏层)GBS BOTTOM SOLDER MAS ...

  5. protel99_拼板详细图解

    首先打开PCB文档.如图所示,在PCB左下角放置一個坐標為X=0,Y=0的焊盤. 从下图看,为了方便电路板生产厂家的加工和焊接工厂的加工,拼版的方向是向上Y轴方向拼版. 接着为了在拼版过程中好对齐板边 ...

  6. zookeeper leader作用

    一个zookeeper 集群 只有一个leader: 类似master/slave模式 客户端提交请求之后,先发送到leader,leader作为接收者,广播到每个server 在folloer上创建 ...

  7. 基于Visual C++2013拆解世界五百强面试题--题9-找出所有的排列方式

    给出一个函数来输出一个字符串的所有排列 按照排列组合的知识我们知道 N个字符排列组合个数有n!种, 那么可知f(n) = n*f(n-1), 如果{1,2}的组合有两种,12,21, 那么{123}的 ...

  8. Binary Tree Level Order Traversal II --leetcode C++

    考察点 广度优先遍历--层次遍历 STL内容器的用法 广度优先遍历的时候,首先应该想到的就是借助于队列.还需要在遍历下一层之前保存当前层节点的数量 代码很简单: class Solution { pu ...

  9. 【LeetCode】Path Sum ---------LeetCode java 小结

    Path Sum Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that addi ...

  10. 最长回文(Manacher)

    HOT~ 杭电2015级新生如何加入ACM集训队? 最长回文 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K ...