个人做网站模版是否有人买,个性化网站建设公司电话,品牌策划案,品牌建设和品牌打造方案一、序列序列的概念#xff1a;按照某种顺序排列的数据类型就叫做序列#xff0c;比如字符串#xff0c;列表#xff0c;元组#xff0c;集合序列的共同点是都有下标#xff0c;支持index()方法和count()#xff0c;也支持切片处理(等同于字符串序列的切片处理)l1 [0, …一、序列序列的概念按照某种顺序排列的数据类型就叫做序列比如字符串列表元组集合序列的共同点是都有下标支持index()方法和count()也支持切片处理(等同于字符串序列的切片处理)l1 [0, 1, 1, 2, 3, 4, 2, 4, 5]
print(l1.index(1))
print(l1.count(1))
print(l1[:3][::-1])
print(l1[::2])二、列表可变类型列表 表达符号使用中括号 [] 里面可以是数字字符串布尔类型列表元组字典集合...# 定义空列表new_empty_list list()
print(empty_list, new_empty_list)列表是一个有序并且元素可以重复的和可变动的元素类型list1 [Apple, Orange, Grape]
list2 [Orange, Apple, Grape]
if list1 list2:print({}和{}相等.format(list1, list2))
else:print({}和{}不相等.format(list1, list2))1、列表元素的删除pop方法pop方法可以进行删除列表中的元素默认删除最后一个索引位置的元素删除并同时可以返回此元素也可以指定下标索引去删除list1 [Apple, Orange, Grape]print(list1.pop())
print(list1)
print(list1.pop(0))
print(list1)remove()方法remove()方法是指定元素去删除list1 [Apple, Orange, Grape,Durian]list1.remove(Durian)
print(list1)del也可以通过指定对应的下标元素值去删除 也可以针对变量进行删除 删除后就会报变量未定NameError: name xxxx is not definedlist1 [Apple, Orange, Grape,Durian]del list1[1]
print(list1) clear()方法clear()方法是清空列表;list1 [Apple, Orange, Grape,Durian]list1.clear()
print(list1)2、列表元素的增加 1、append()方法 默认是添加元素到列表的末尾list1 [Apple, Orange, Grape]list1.append(Pear)
print(list1)2、insert()方法 指定索引位置在索引前面一个位置插入list1 [Apple, Orange, Grape]list1.insert(1, Cherry)
print(list1)3、extend()方法 是可以跟其他序列进行拼接 相当于拼接list1 [Apple, Orange, Grape]list3 [watermelon]
string1 test
list1.extend(list3)
print(list1)
print(list1 list3)# 字符串如果被使用这个extend方法添加到列表中则先会把字符串拆分成列表然后添加进去list1 [Apple, Orange, Grape]list1.extend(string1)
print(list1)3、列表元素的获取list1 [Apple, Orange, Grape]
list2 [Orange, Apple, Grape]print(list1[-1], list1[2])列表长度的获取num_list [1, 2, 3, 4, 5,]
print(len(num_list))有几个元素列表长度就为几4、列表元素的修改list2 [Orange, Apple, Grape]list1[2] Durian
print(list1)5、列表元素的排序sort()方法sort()方法可以实现对列表元素进行排序 按照默认的由低到高的顺序排序num_list [2, 1, 6, 3, 7, 9]
num_list.sort()
print(num_list)alpha_list [b, d, w, x, a, c]
alpha_list.sort()
print(alpha_list)
# # sort()方法的reverse参数可以实现反向输出默认不加的话就是reverseFalse也就是关闭了反向输出如果需要指定则照如下方式使用num_list [2, 1, 6, 3, 7, 9]
num_list.sort()
print(num_list)num_list.sort(reverseTrue)
print(num_list)reverse()方法reverse()方法可以实现将列表元素反向输出num_list [2, 1, 6, 3, 7, 9]num_list.reverse()
print(num_list)总结列表元素的反向输出有三种办法list1 [Apple, Orange, Grape]
list2 [Orange, Apple, Grape]
num_list [2, 1, 6, 3, 7, 9]# 1 列表切片实现
print(num_list[::-1])
# 2) reverse()方法
print(list2)
list2.reverse()
print(list2)
# 3) reversed()内置函数 返回序列给定的值的一个反向的迭代器 如果需要输出对应的数据类型 则需要使用对应的数方法进行转化
print(list(reversed(list2)))6、列表元素的去重not in对num_list进行去重num_list [1, 2, 3, 4, 5, 5, 4, 3]
empty_list []
for i in num_list:if i not in empty_list:empty_list.append(i)
print(empty_list)7、 列表元素的求值 列表元素的求和digit_list [3, 4, 5, 6]# 1) for循环求和
for_total 0
for i in digit_list:for_total i
print(for_total)digit_list [3, 4, 5, 6]# 2) while循环求和
while_total 0
i 0
while i len(digit_list):while_total digit_list[i]i 1
print(while_total)# 3) 使用sum函数实现
print(sum(digit_list))列表元素的最大值最小值# 求列表最大值 求平均值的 求最小值的digit_list [3, 4, 5, 6]
print(max(digit_list))
print(min(digit_list)) 列表元素的平均值# 1) statistics module,其中包含一个内置函数来计算数字的平均值或平均值statistics.mean() functio用于计算输入值或数据集的平均值/平均值。
digit_list [3, 4, 5, 6]from statistics import mean
print(mean(digit_list))# 2) 先求和再求平均值digit_list [3, 4, 5, 6]print(sum(digit_list) / len(digit_list))# 3) NumPy 模块有一个内置函数来计算数据集或列表中存在的数据项的平均值/平均值。digit_list [3, 4, 5, 6]import numpy
print(numpy.average(digit_list))8、 列表推导式/列表生成式# 使用普通for循环创建一个1-10的一个列表slist []
for i in range(1,11):slist.append(i)
print(slist)# 列表推导式语法[exp1 for x in data if condition]print([x*x for x in range(1, 11)])
print(sum([i for i in range(1,11)]))9、列表的拷贝浅拷贝# 浅拷贝 深拷贝 针对可变序列 面试重点知识 需要记忆copy()方法是浅拷贝(shallow copy) 如果一个可变序列是多层次嵌套的值则浅拷贝因为是浅层次的拷贝所以拷贝后的对象浅层次的值不会随着之前的源对象值改变而改变而深层次的嵌套的值因为浅拷贝无法拷贝过去也就是说拷贝的是源数据的一个引用因此如果我们修改浅层次的数据源数据不会更改深层次数据修改后源数据也会修改 可以理解为深层次的数据是做了个软链接list3 [1, 2, 3, [a, b, c], 5]
list4 list3.copy()
print(id(list3), id(list4))
list4[0] 0
list4[-2][0] a1
print(list3)
print(list4)浅拷贝不是完整的拷贝他只能拷贝第一层的元素如果你是多层列表的话他只能拷贝第一层元素第二层元素他并没有拷贝相当于做了一个引用并不是真的拷贝走了所以你在修改浅拷贝列表的第二层元素的时候相当于在原列表上修改了# 这里发现浅拷贝深层次的子列表对象的内存地址值id是完全一样的 说明深层次只是做了个引用 无法实现创建新对象print(id(list3[-2]))
print(id(list4[-2]))深拷贝list5 deepcopy(list3)
print(list5)
list5[0] 9
list5[3][1] bag
print(list3)
print(list5)深拷贝他就是完整的拷贝如果是多层列表的话就拷贝走了整个列表相当于创建了一个新的完整的的列表所以你在新的列表上进行修改是不会影响到原列表的# 这里发现深拷贝的深层次的子列表对象的内存地址值id是完全不一样的 说明实现创建了新对象print(id(list3[-2]))
print(id(list5[-2]))