python列表

9.列表的使用

(1)append方法

说明:  append(x)   append方法用于在列表的尾部追加元素,参数x是插入元素的值。
举例:
#coding:utf-8
test1 = [3,4,6,7,"Hello World"]
test1.append(3.9)
    print test1  #reslut = [3, 4, 6, 7, 'Hello World', 3.8999999999999999]  

(2)insert方法

说明:  insert(index,value)   insert方法用于在列表中插入元素。它有两个参数,index参数是索引位置,value参数是插入元素的值。
举例:
#coding:utf-8
test1 = [3,4,6,7,"Hello World"]
test1.insert(2, "insert Here")
    print test1  #result = [3, 4, 'insert Here', 6, 7, 'Hello World']

(3)extend方法

说明:    list1.extend(list2)    extend方法用于将两个列表合并,将list2列表的值添加到list1列表的后面。
举例:
#coding:utf-8
test1 = [1,2,3,4]
test2 = [5,6,7,8]
    print test1      #result = [1, 2, 3, 4]
test1.extend(test2)
    print test1      #result = [1, 2, 3, 4, 5, 6, 7, 8

(4)index方法

说明:  index(element)        index方法用于取得element(元素)第一次出现的索引值
举例:
#coding:utf-8
test1 = [1,2,3,4]
    print test1.index(1)   #result = 0
test2 = [1,1,1,1]
    print test2.index(1)   #result = 0
#如果element是一个不存在的值,就会出现错误提示
    print test2.index(2)  #ValueError: list.index(x): x not in list
(5)remove方法
说明:  remove(element)        remove方法用于从列表中移除第一次的值。
举例:
#coding:utf-8
test1 = ['One','Two','Three','Four','Five']
    print test1    #result = ['One', 'Two', 'Three', 'Four', 'Five']
test1.remove('Two')
    print test1   #result = ['One', 'Three', 'Four', 'Five']
#如果移除一个不存在的值,就会引发一个错误
test1.remove('Six')
    print test1  #ValueError: list.remove(x): x not in list

(6)pop方法

说明:pop()  pop方法用于删除列表中最后一个元素
举例:
#coding:utf-8
test1 = ['One','Two','Three','Four','Five']
test1.pop()
    print test1 #result = ['One', 'Two', 'Three', 'Four']
#如果试图对一个空列表使用pop方法,则会引发一个错误!
test2 = []
    test2.pop()  #IndexError: pop from empty list
  
1、list:列表(即动态数组,C++标准库的vector,但可含不同类型的元素于一个list中)
a = ["I","you","he","she"] #元素可为任何类型。
下标:按下标读写,就当作数组处理
以0开始,有负下标的使用
0第一个元素,-1最后一个元素,
-len第一个元 素,len-1最后一个元素

取list的元素数量
len(list) #list的长度。实际该方法是调用了此对象的__len__(self)方法。

创建连续的list

L = range(1,5) #即 L=[1,2,3,4],不含最后一个元素
L = range(1, 10, 2) #即 L=[1, 3, 5, 7, 9]

list的方法

L.append(var) #追加元素
L.insert(index,var)
L.pop(var) #返回最后一个元素,并从list中删除之
L.remove(var) #删除第一次出现的该元素
L.count(var) #该元素在列表中出现的个数
L.index(var) #该元素的位置,无则抛异常
L.extend(list) #追加list,即合并list到L上
L.sort() #排序
L.reverse() #倒序
 

list 操作符:,+,*,关键字del

a[1:] #片段操作符,用于子list的提取
[1,2]+[3,4] #为[1,2,3,4]。同extend()
[2]*4 #为[2,2,2,2]
del L[1] #删除指定下标的元素
del L[1:3] #删除指定下标范围的元素
 

list的复制

L1 = L #L1为L的别名,用C来说就是指针地址相同,对L1操作即对L操作。函数参数就是这样传递的
L1 = L[:] #L1为L的克隆,即另一个拷贝。
list comprehension
[ <expr1> for k in L if <expr2> ]

1.列表按列排序  list sorted

如果列表的每个元素都是一个元组(tuple),我们要根据元组的某列来排序的化,可参考如下方法

下面例子我们是根据元组的第2列和第3列数据来排序的,而且是倒序(reverse=True)
a = [('2011-03-17', '2.26', 6429600, '0.0'), ('2011-03-16', '2.26', 12036900, '-3.0'), ('2011-03-15', '2.33', 15615500,'-19.1')]  
print a[0][0]  
2011-03-17 
b = sorted(a, key=lambda result: result[1],reverse=True)  
print b  
[('2011-03-15', '2.33', 15615500, '-19.1'), ('2011-03-17', '2.26', 6429600, '0.0'), ('2011-03-16', '2.26', 12036900, '-3.0')]  
c = sorted(a, key=lambda result: result[2],reverse=True)  
print c  
[('2011-03-15', '2.33', 15615500, '-19.1'), ('2011-03-16', '2.26', 12036900, '-3.0'), ('2011-03-17', '2.26', 6429600, '0.0')] 

2.列表去重  set(list)

有时候需要将list中重复的元素删除,就要使用如下方法    

lst= [(1,'sss'),(2,'fsdf'),(1,'sss'),(3,'fd')]  
set(lst)  
set([(2, 'fsdf'), (3, 'fd'), (1, 'sss')])  
lst = [1, 1, 3, 4, 4, 5, 6, 7, 6]  
set(lst)  
set([1, 3, 4, 5, 6, 7]) 
 

Python中的列表(list)类似于C#中的可变数组(ArrayList),用于顺序存储结构。
创建列表
sample_list = ['a',1,('a','b')]
Python 列表操作
sample_list = ['a','b',0,1,3]
得到列表中的某一个值
value_start = sample_list[0]
end_value = sample_list[-1]
删除列表的第一个值
del sample_list[0]
在列表中插入一个值
sample_list[0:0] = ['sample value']
得到列表的长度
list_length = len(sample_list)
列表遍历
for element in sample_list:
print(element)

Python 列表高级操作/技巧
产生一个数值递增列表
num_inc_list = range(30)
#will return a list [0,1,2,...,29]
用某个固定值初始化列表
initial_value = 0
list_length = 5
sample_list = [ initial_value for i in range(10)]
sample_list = [initial_value]*list_length
# sample_list ==[0,0,0,0,0]

posted @ 2015-10-29 10:39  muzinan110  阅读(172)  评论(0编辑  收藏  举报