Driver Into Python 学习摘要 第三章之List

赋值:

"""s[i:j] = t
slice of s from i to j is replaced by the contents of the iterable t"""
li = ["a",2,True,"b"]
li[4:5] = ["c",False,3] #批量赋值,超过范围自动扩展List大小
print li
>>['a', 2, True, 'b', 'c', False, 3]

索引: 

li = ["a","b","c","d","e"]

print li[1] #返回索引值为1的项
>>"b"
print type(li[2]) #返回的类型为str型
>><type 'str'> print li[-4] #任何一个非空的list最后一个元素总是li[-1]
>>"b" print li[1:2]#分片返回索引值从1到1的值
>>['b'] print type(li[1:2])
>><type 'list'> #返回的类型为List类型 print li[:2]#slice简写,当左侧分片索引为空时默认为0 >>['a', 'b'] print li[1:] #简写,当右侧分片索引为空时,默认为list的长度
>>['b', 'c', 'd', 'e'] print li[:] #等于 print li[0:len(li)]
>>['a','b', 'c', 'd', 'e']

添加元素:

li = ["a","b","c","d","e"]
li.append("f")
print li
>>['a', 'b', 'c', 'd', 'e', 'f']
li.insert(2,"1")
print li
>>['a', 'b', '1', 'c', 'd', 'e', 'f']
li.extend(["g","h"])
print li
>>['a', 'b', '1', 'c', 'd', 'e', 'f', 'g', 'h']

#append与extend的区别

li = ["a","b","c","d","e"]
li.extend(["f","g"])
print li
>>['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
li.append(["f","g"])
print li
>>['a', 'b', 'c', 'd', 'e', 'f', ['f','g']]

搜索:

"""s.index(x[, i[, j]])
return smallest k such that s[k] == x and i <= k < j"""
"""返回值li[i]到li[j]之间值等于x的最小k值"""

li = ["a",2,True,"b",2]
print li.index(2)
>>0
print li.index(2,2)
>>4

Count函数:

"""s.count(x)
return number of i‘s for which s[i] == x"""
"""返回x值在List中出现的次数"""
li = ["a",2,True,"b",2]
print li.count(True)

删除:

li = range(1,10)
del li[0:2]
print li
>>[3, 4, 5, 6, 7, 8, 9]
li.remove(3) #remove只移除List中第一个value为3的项
print li
>>[4, 5, 6, 7, 8, 9]
li.pop()
print li
>>[4,5,6,7,8]
li.pop(1)
print li
>>[4,6,7,8]

排序:

s.sort([cmp[, key[, reverse]]])

sort方法接受三个参数,都可以省略,默认是升序排序。

第一个参数cmp 是 比较函数,两个参数(列表的元素)怎样比较,对于整数这种内置类型的比较,方法很直观,但是对于自定义类型的比较,就要自己定义比较函数了,函数返回 0 ,就是两个数相等,返回负数,就是第一个参数小,第一个参数就排在第二个参数后面了。

第二个参数 key 是比较列表元素的什么属性。

第三个参数reverse是bool型,意思是是否反转(倒序排序)

s = [1, 2, 3, 4, 5]
s.sort(reverse=True)
print s
 
#或者直接reverse
s = [1, 2, 3, 4, 5]
s.reverse()
print s
 
#cmp 函数,两个数倒过来比较
s = [1, 2, 3, 4, 5]
s.sort(cmp=lambda a, b:cmp(b, a))
print s
 
#key,把元素取反来比较
s = [1, 2, 3, 4, 5]
s.sort(key=lambda a:-a)
print s

 运算符:

li = range(1,5)
li = li + range(5,10)
print li
>>[1, 2, 3, 4, 5, 6, 7, 8, 9]
li = li + [10]*2
print li
>>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10]

  

posted @ 2014-02-27 23:25  Z.J  阅读(138)  评论(0)    收藏  举报