空列表的生成可以用一对中括号、list()函数和作用于字符串的split()方法:
ls1 = [] # 一对空的方括号
ls2 = list() # 无参数的list()函数生成空列表
ls3 = ''.split() # 作用于空字符串时,会生成一个空列表
列表中可以容纳各种类型的数据:
ls1 = [1,2,'hello',[3,4],(5,6),{7,8},{'a':12}]
列表的数据的修改
ls = [1,2,3,4,5,6,7,8,9,10]
ls = [1,2,3,4,5,6,7,8,9,10]
ls[1]='hello'
切片赋值方法更新列表中的数据,要求新值也为列表将原列表中切片中元素删除,用新的列表中的元素代替切片的位置。
ls = [1,2,3,4,5,6,7,8,9,10]
ls[1]='hello'
ls[2:5]=[100] # 序号2,3,4的元素切片返回的是[3,4,5],将其替换为列表[100]
当切片不连续时(如,ls[i:j:step])新列表与切片元素数量相等,依序替换
ls = [1,2,3,4,5,6,7,8,9,10]
ls[1::2]=['a','b','c','d','e']
新列表元素的数据类型与原列表不要求相同
ls = [88,56,95,46,100,77]
print(ls[0:6:2] ) #步长为2
# 切片返回结果,3个元素,输出[88, 95, 100]
ls[0:6:2] = [10,20,30]
# 返回的3个元素用新列表中对应位置的元素替代
print(ls) # 输出[10, 56, 20, 46, 30, 77]
ls[0:6:2] = ['Python','C语言','VB']
# 新列表元素的数据类型与原列表不要求相同
print(ls)
# 输出['Python', 56, 'C语言', 46, 'VB', 77]
列表的更新
列表的更新有append()、extend()和insert() 三种方法,这三种方法都是原地操作,不改变列表对象身份(id值)。
ls.append(x)用于向列表ls末尾追加一个元素
ls = [88,56,95,46,100,77]
ls.append(100)
ls.append('python')
ls.extend(L)是将另一个列表L中的所有元素追加到列表ls的末尾
ls = [88,56,95,46,100,77]
L = [10,20,30]
ls.extend(L)
ls.insert(i,x)是向列表ls中序号为 i 的位置插入一个一元素 x
ls = [88, 56, 95, 46, 100, 77]
ls.insert(2, 99) # 序号为2的位置插入元素99
列表的元素删除—pop()__方法
ls.pop(i)移除列表中序号为 ‘i’ 的一个元素,缺省移除列表的最后一个元素。pop()方法是唯一一个能删除列表元素又能返回值的列表方法,其返回值为被移除的元素
L = list('7319826') # ['7', '3', '1', '9', '8', '2', '6']
L.pop(3) # 移除列表中序号为3的元素
L.pop() # 参数缺省时,默认移除列表末尾的元素
L = list('7319826') # ['7', '3', '1', '9', '8', '2', '6']
first = L.pop(3) # 移除列表中序号为3的元素,将被移除的元素命名为first
last = L.pop() # 移除列表末尾元素,将移除的元素使中为last
列表的元素删除— remove()方法
ls.remove(x)
删除列表ls中第一个与参数“x”值相同的元素列表中存在多个与参数“x”值相同的元素时,只删除第一个,保留其它元素。当列表中不存在与参数“x”相同的元素时,抛出错误。
L = list('73192154') # ['7', '3', '1', '9', '2', '1', '5', '4']
L.remove('1') # 删除列表中第一次出现元素'1'
L.remove('6') # ValueError: list.remove(x): x not in list
列表的元素删除- clear()方法
L.clear()方法可用于删除列表L中全部元素,即清空列表,作用与del L[:]相同
L = list('73192154')
L.clear() # 删除列表中全部元素,对象 L 仍存在
L = list('73192154')
del L[:] # 删除列表中全部元素,对象 L 仍存在
print(L) # 输出空列表 []
del L # 对象L 被删除
print(L) # NameError: name 'L' is not defined
列表的排序— ls.sort()方法
ls.sort(seq, key=None, reverse=False)
列表中的数据在原地进行排序,直接比较元素大小,直接修改了列表中的数据,无返回值默认升序排序;参数reverse=True时,降序排序
L = ['73','13','9','82','6','5','04']
ls = [89,76,58,99,34,60]
#小L.sort() # 比较字符串大小,逐个比较字符的unicode值,升序排序
# ['04', '13', '5', '6', '73', '82', '9']
# 字符串'13'< '5'
#ls.sort()
# 比较数值的大小
_