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]

浙公网安备 33010602011771号