一、list
1.对列表内容的创建,访问,添加,删除,替换
# -*- coding: UTF-8 -*-
#使用[]创建一个名为L的list
L=[1,2,3,4,5]
#按照索引访问第一个和最后一个元素
print L[0],L[-1]
#使用append添加新元素时总是添加在list最后
L.append(6)
print L
#使用insert方法插入新元素,传入两个参数,第一个为插入的位置索引,第二个为插入的值
L.insert(2,"third")
print(L)
#使用pop方法删除指定索引位置的元素,如不指定参数,默认删除最后一项
L.pop(1)
print(L)
#替换List中的元素时,直接对需替换的元素进行赋值,如把字符串third替换为整数2
L[1]=2
print(L)
输出结果为:
1 5
[1, 2, 3, 4, 5, 6]
[1, 2, 'third', 3, 4, 5, 6]
[1, 'third', 3, 4, 5, 6]
[1, 2, 3, 4, 5, 6]
2.对列表内容的截取操作
#对列表截取,创建一个新列表
l2=["a","b","c","d"]
print(l2[0:3])
print(l2[0:])
输出结果为:
['a', 'b', 'c']
['a', 'b', 'c', 'd']
可以发现,对列表的截取操作时,是取前不取后的,即访问l2的第0个到第3个索引时,是不访问第三个的,到第二个索引就截止了,所以,如果要访问到最后一个元素,使用[x:]这种形式,从第x个索引访问到最后一位。
3.list中的函数
3.1比较函数cmp(L1,L2)
如果L1和L2类型和内容完全相等,则返回0,如前者大,则返回1;如后者大,则返回-1。
3.2 Max和Min函数
max(L1),则返回L1中的最大值,需注意的是,如果L1中同时存在字符串和数字类型,那么字符串永远大于数值类型。
3.3列表复制
在python 2的版本里,似乎list没有copy这个方法?但是copy方法属于浅拷贝,复制的列表id是一样的,需要使用深拷贝工具(不会)。
#复制列表时,另a=b是传址操作,使用a.copy()是传值操作
a=[1,2,3]
b=a
b[0]=100
print a ,b
<<[100, 2, 3] [100, 2, 3]
#使用a.copy()是传值操作
a1=[1,2,3]
b1=a1.copy()
b1[0]=100
print a1 ,b1
<<[1, 2, 3] [100, 2, 3]
4.list列表生成式使用
#列表生成式的使用
a=range(1,20)
b=[i*2 for i in range(1,5)]
print b
c=[m for m in a if m%2==0]
print c
d=[m+n for m in b for n in c ]
print d
输出结果为:
[2, 4, 6, 8, 10, 12, 14, 16, 18]
[4, 6, 8, 10, 12, 14, 16, 18, 20, 6, 8, 10, 12, 14, 16, 18, 20, 22, 8, 10, 12, 14, 16, 18, 20, 22, 24, 10, 12, 14, 16, 18, 20, 22, 24, 26]