学习内容:
Python学习之【列表】
学习时间:
2022/6/12 上午11:26
学习产出:
列表 相当于其他语言的数组。
创建:
list1 = ['hello', 'world', 26, 'hello']
list2 = list(['hello', 'world', 27])
一、方法
(一)查找
1.index() 根据元素查索引
只有1个参数,返回列表中第一个匹配上的元素的下标
print(list1.index('hello')) #0
有2或3个参数,包括start,不包括end
print(list1.index('hello',1)) #3
#ValueError: 'hello' is not in list
print(list1.index('hello',1,3))
2.根据索引查元素
# 正向索引[0, N] 索引超出会报错 list index out of range
print(list2[9])
# 逆向索引[-N, -1] 索引可为负
print(list2[-3]) #hello
(二)切片:获取列表中多个元素(会产生一个新的列表对象)
语法格式 列表名[start : end : step]
# 默认值 [start=0, end=N) step=1
# step为正 start为数组第一位
lst = [10, 20, 30, 40, 50]
print(lst[::2]) #[10, 30, 50]
# step为负 start为数组最后一位 step=-1,逆序输出列表
print(lst[::-2]) #[50, 30, 10]
(三)列表元素的判断和遍历:in, not in, for in
(四)增
1.append(val) 尾1
lst1 = ['a', 'b']
lst1.append('c')
print(lst1)
2.extend(val) 尾至少1
lst1.extend(['ext', 'end'])
print(lst1)
3.insert(index, val) 任意1
lst1.insert(0, 'insert')
print(lst1)
4.切片 任意至少1
lst1[1:]=['切', '片']
print(lst1)
(五)删
1.remove(val) 只移除第一个重复的元素
lst2 = ['a', 'b', 'b', 'c', 'd']
lst2.remove('b')
print(lst2)
2.pop(index) 根据索引移除,默认是列表最后一个元素
lst2.pop()
print(lst2)
3.切片 删除至少一个元素 产生新对象
lst2[:1:] = []
print(lst2)
4.clear()
print(lst2.clear()) #None
5.del 列表
del lst2
# NameError: name 'lst2' is not defined
print(lst2)
(六)改
索引 或 切片
lst3 = [1, 2, 3, 4]
lst3[2] = 30
print(lst3) #[1, 2, 30, 4]
lst3[3::] = [5, 6, 7]
print(lst3) #[1, 2, 30, 5, 6, 7]
(七)排
sort() 默认由小到大
lst4 = [1, 20, 7, 4]
lst4.sort()
print('升序', lst4, id(lst4))
逆,由大到小
sort(reverse=True)
lst4.sort(reverse=True)
print('降序', lst4, id(lst4))
内置函数:sorted(列表名),会产生新列表对象
lst5 = ['center', 'beyond', 'action']
newlst5 = sorted(lst5, reverse=True)
print(newlst5, id(lst5), id(newlst5))
二、列表生成式
语法格式:[i*i for i in range(1, 10)]
lst6 = [ i*2 for i in range(1, 10)]
print(lst6)