@基础复习
刚开始学习有很多不熟悉,先整理一下基础的,以后随时查看。先来list的操作
a=[3,4]
>>> print(dir(a))
'''['__add__', '__class__', '__contains__', '__delattr__',
'__delitem__', '__dir__', '__doc__', '__eq__', '__format__',
'__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__',
'__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__',
'__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__',
'__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__',
'__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__',
'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert',
'pop', 'remove', 'reverse', 'sort']'''
# 按照后面append->sort的顺序整理了一下
append list.append(element)
a = [1, 3, 4, 6, 9]
a.append(8) # 一次只能添加一个元素
print(a)
#结果
[1, 3, 4, 6, 9, 8]
clear list.clear()
b = a
a.clear() # 清空列表,注意a复制给其他变量的值也会被清空,无返回值
print('clear后的a:', a)
print('clear后的 b:', b)
结果
clear后的a: [ ]
clear后的 b: [ ]
copy list.copy()
a = [1, 3, 4, 6, 9, 4, 9]
old_list = a
list_new = a.copy()
list_new.append('cat')
print('oldlist', a)
print('new list:', list_new)
结果
oldlist [1, 3, 4, 6, 9, 4, 9]
new list: [1, 3, 4, 6, 9, 4, 9, ‘cat’]
对新复制列表的操作不会影响旧列表,如果是直接赋值会影响旧list
如:
>>> oldlist = [1, 3, 4, 6, 9, 4, 9]
>>> newlist = oldlist
>>> newlist.append('cat')
>>> print('old list is',oldlist)
old list is [1, 3, 4, 6, 9, 4, 9, 'cat']
>>> print('new list is',newlist)
new list is [1, 3, 4, 6, 9, 4, 9, 'cat']
count list.count(element)
a = [1, 3, 4, 6, 9, 4, 9, ('a', 'b')]
count = a.count(4)
count2 = a.count(('a', 'b'))
print('the count of 4 in a is ', count)
print('the count of (a,b)in a is ', count2)
结果
the count of 4 in a is 2
the count of (a,b)in a is 1
extend list.extend(newlist/dict/set)
将set/dict 型数据用extend添加到list型数据里面,原本dict/set型数据变成了list
a = [1, 3, 4, 6, 9, 4, 9, ('a', 'b')]
n_set = {3, 4, 3, (3, 33)}
a.extend(n_set)
print(a)
print('n_set的type:', type(n_set), 'a type:', type(a))
结果
[1, 3, 4, 6, 9, 4, 9, (‘a’, ‘b’), 3, 4, (3, 33)]
n_set的type: <class ‘set’>
a type: <class ‘list’>
set 表示无序但不能重复的数据类型,当传入重复数据时,set会自动删除重复数据
index list.index(element)
print(a.index(4)) # 这里只查找第一次出现的4
# 结果是 2
insert list.insert(index, element)
a.insert(4, [9, 0])
print(a)
#结果 [1, 3, 4, 6, [9, 0], 9, 4, 9, ('a', 'b'), 3, 4, (3, 33)] 在元素第四位上插入
remove list.remove(element)
remove single element
a = [1, 3, 4, 6, [9, 0], 9, 4, 9, ('a', 'b'), 3, 4, (3, 33)]
a.remove(4)
print(a) # 只去掉了第一个4
# [1, 3, 6, [9, 0], 9, 4, 9, ('a', 'b'), 3, 4, (3, 33)]
pop list.pop(index) 与remove不同的是会返回删除的元素
ret = a.pop(5)
print(ret)
print(a)
# 4
# [1, 3, 6, [9, 0], 9, 9, ('a', 'b'), 3, 4, (3, 33)]
reverse list.reverse()
eg = ['book', 'pen', 'pencil']
eg.reverse()
print(eg)
#['pencil', 'pen', 'book']
另一种reverse的方法
#reversed_list = eg[star:stop:step]
reversed_list = eg[::-1]
print('reversed_list:', reversed_list)
#['pencil', 'pen', 'book']
单独打印出倒序排列的元素
eg = ['book', 'pen', 'pencil']
for o in reversed(eg):
print(o)
#pencil
#pen
#book
sort list.sort(key=…, reverse=…)
vowels = ['e', 'a', 'u', 'o', 'i']
# sort the vowels
vowels.sort()#排列的元素不成对,默认升序
# print vowels
print('Sorted list:', vowels)
#Sorted list: ['a', 'e', 'i', 'o', 'u']
降序排列
vowels = ['e', 'a', 'u', 'o', 'i']
vowels.sort(reverse=True)
# print vowels
print('Sorted list (in Descending):', vowels)
#Sorted list (in Descending): ['u', 'o', 'i', 'e', 'a']
按照list里第二个元素排序
def takeSecond(elem):
return elem[1]
# random list
random = [(2, 2), (3, 4), (4, 1), (1, 3)]
# sort list with key
random.sort(key=takeSecond)#默认reverse=false,按照元素第二位升序排列
# print list
print('Sorted list:', random)
random.sort(key=takeSecond, reverse=True)
print('reversed sorted list:', random) # list第二位元素降序排列
#Sorted list: [(4, 1), (2, 2), (1, 3), (3, 4)]
#reversed sorted list: [(3, 4), (1, 3), (2, 2), (4, 1)]