python3中range函数返回一个range对象,python2则返回一个list对象
r = range(10)
type(r)range
1 in rTrue
r[5:]range(5, 10)
r[5:] == range(5, 10)True
list(range(0, 10, 2))[0, 2, 4, 6, 8]
list(range(0, -10, -1))[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
range对象可以转为list对象
lst = list(r)
print(lst)[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
list/tuple支持以下操作
1 in lstTrue
0 not in lstFalse
letters = ['a', 'b', 'c', 'd', 'e']
lst + letters[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'a', 'b', 'c', 'd', 'e']
[[]] * 3[[], [], []]
letters[0:2]['a', 'b']
lst[::2][0, 2, 4, 6, 8]
lst[::-1][9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
lst[-1] = 99
lst[0:5] = letters
print(lst)
lst[0:3] = [] # 相当于del lst[0:3]
print(lst)['a', 'b', 'c', 'd', 'e', 5, 6, 7, 8, 99]
['d', 'e', 5, 6, 7, 8, 99]
lst = list(range(10))
lst[::2] = ['a', 'b', 'c', 'd', 'e']
print(lst)['a', 1, 'b', 3, 'c', 5, 'd', 7, 'e', 9]
del lst[::2]
print(lst)[1, 3, 5, 7, 9]
letters * 2['a', 'b', 'c', 'd', 'e', 'a', 'b', 'c', 'd', 'e']
letters *= 2
print(letters)['a', 'b', 'c', 'd', 'e', 'a', 'b', 'c', 'd', 'e']
print(len(lst), min(lst), max(lst))5 1 9
index方法可以检测对象在list中出现的位置
letters.index('a')0
letters2 = letters * 2
(letters * 2).index('a', 3, -1)5
count方法对象在列表中出现的次数
letters2.count('a')4
复制list的几种方法
lst1 = lst.copy()
lst2 = lst[:]
lst3 = list(lst)
print(lst1, lst2, lst3)
print(id(lst1), id(lst2), id(lst3))[1, 3, 5, 7, 9] [1, 3, 5, 7, 9] [1, 3, 5, 7, 9]
4342743752 4339182024 4342746888
letters = ['a', 'b', 'c', 'd', 'e']
letters.append('h')
print(letters)['a', 'b', 'c', 'd', 'e', 'h']
last = letters.pop()
print(last)
print(letters)h
['a', 'b', 'c', 'd', 'e']
letters.insert(1, 'b')
print(letters)['a', 'b', 'b', 'c', 'd', 'e']
letters[1:1] = ['b']
print(letters)['a', 'b', 'b', 'b', 'c', 'd', 'e']
letters.remove('b')
print(letters)['a', 'b', 'b', 'c', 'd', 'e']
letters.reverse()
print(letters)['e', 'd', 'c', 'b', 'b', 'a']
list的排序
letters.sort()
print(letters)['a', 'b', 'b', 'c', 'd', 'e']
倒序排序
letters.sort(reverse=True)
print(letters)['e', 'd', 'c', 'b', 'b', 'a']
按指定的键排序
lst = [('a', 1), ('b', 3), ('c', 2)]
lst.sort(key=lambda x:x[1], reverse=True)
print(lst)[('b', 3), ('c', 2), ('a', 1)]
清空list的办法
letters.clear()
del lst[:]
print(letters, lst)[] []