列表:Python的“苦力”
列表是序列的一种,它是可变的。
list函数可以将其他序列转换为列表
list1 = list('hello')
print list1
list2 = list((1,2,3))
print list2
----------基本的列表操作----------
1. 改变列表:元素赋值
可以通过索引来为列表中的元素赋值,但注意不要越界
x = [1,1,1]
x[1] = 2
print x
2. 删除元素
可以使用del语句
names = ['Alice','Beth','Cecil','Dee-Dee','Earl']
del names[2]
print names
3.切片赋值
name1 = list('Perl')
print name1
name1[2:] = list('ar')
print name1
可以使用与原序列不等长的序列将切片替换
name1[1:] = list('ython')
print name1
切片赋值语句可以在不需要替换任何原有元素的情况下插入新的元素
numbers1 = [1,5]
numbers1[1:1] = [2,3,4]
print numbers1
也可以使用切片赋值语句删除列表中的元素
numbers1[1:4] = []
print numbers1
numbers2 = [0,1,2,3,4,5,6,7,8,9]
numbers2[-5:-8:-1] = [10 ,10,10]
print numbers2
----------列表方法----------
1.append :用于在列表末尾追加新的对象
append方法与其他一些方法类似,是直接修改原始的列表
lst1 = [1,2,3]
lst1.append(4)
print lst1
2.count:统计某个元素在列表中出现的次数
lst2 = ['to','be','or','not','to','be']
cnt1 = lst2.count('to')
print cnt1
3.extend:在列表的末尾一次性追加另一个序列中的多个值
lst3 = [1,2,3]
lst4 = [4,5,6]
lst3.extend(lst4)
print lst3
需要注意如下一点:
这样做是可行的,但是代码的可读性差
a = [1,2,3]
b = [4,5,6]
a[len(a):] = b
print a
4.index:用于从列表中找出某个值的第一个匹配项的索引位置
knights = ['we','are','the','knights','who','say','ni']
print knights.index('who')
5.insert:用于将对象插入到列表中
numbers3 = [1,2,3,5,6,7]
numbers3.insert(3,'four')
print numbers3
与extend方法一样,insert方法的操作也可以用分片赋值来实现
numbers4 = [1,2,3,5,6,7]
numbers4[3:3] = ['four']
print numbers4
这种方法的可读性差
6.pop:移除列表中的一个元素(默认是最后一个),并返回该元素的值
x = [1,2,3]
print x.pop()
print x
print x.pop(0)
print x
使用append和pop可以实现栈
7.remove :用于移除列表中某个值的第一个匹配项,没有返回值
x = ['to','be','or','not','to','be']
x.remove('be')
print x
8.reverse :将列表中的元素反向存放,没有返回值
x = [1,2,3]
x.reverse()
print x
9.sort:对列表进行排序,会改变原始列表,但没有返回值
x = [4,6,2,1,7,9]
x.sort()
print x
如果想保持原列表不变,同时得到排序后的类型,那么用如下操作
x = [4,6,2,1,7,9]
y = x[:] #这里不能使用y = x
y.sort()
print x
print y
也可以使用sorted函数,这个函数可以用于任意序列,却总返回一个列表
x = [4,6,2,1,7,9]
y = sorted(x)
print x
print y
10.高级排序
用户自定义排序规则,例如使用内建函数cmp(x,y)
然后将该函数提供给sort方法作为参数
numbers = [5,2,9,7]
numbers.sort(cmp)
print numbers
sort方法有另外两个可选的参数——key和reverse
其中用一个函数来指定key,reverse的值为False或者True
x = ['afsafs','sdfsfs','wee','asfasfafa','a']
x.sort(key = len,reverse = True)
print x