1.使用set集合,虽然去除掉重复元素,但是顺序改变了 耗时约4.0*10^-5 s A = ['a','b','X','a','b','G'] B = list(set(A)) print(A)['a', 'b', 'X', 'a', 'b', 'G'] print(B)['a', 'X', 'b', 'G'] 2.不改变顺序的去重方法 耗时约4.5*10^-5 s A = ['a','b','X','a','b','G'] B = sorted(set(A),key=A.index) pri
一.列表查找:从列表中查找指定元素 输入:列表.待查找元素 输出:元素下标或未查找到元素 二.列表查找方式 顺序查找 : 从列表的第一个元素开始遍历,知道找到为止.时间复杂度O(n) 二分查找 :从有序的列表的候选区L[0:n]开始,通过堆待查找的值与候选区中间值进行比较,每次候选区数减少一半,时间复杂度O(logn) 顺序查找 def linear_search(data_set, value): for i in range(range(data_set)): if data_set[i]
循环删除列表中元素时千万别用正序遍历,一定要用反序遍历! 废话不多说,先上案例代码: def test(data): for i in data: data.remove(i) return data data = [1, 2, 3] print(test(data)) 面对以上代码,乍一看以为会打印出空列表,因为test函数内通过for的方法将data中的元素都删除了,其实不然,实际输出如下: [2] 为什么会产生这种结果呢? 我们来深度剖析一下: 原列表在内存中为: 第一次执行到data.r
求两个列表的差集 >>> a = [1,2,3] >>> b=[1,2] >>> #################################### >>> #两个列表的差集 >>> ret = [] >>> for i in a: if i not in b: ret.append(i) >>> ret [3] >>> #两个列表的差集2 >>
def common_data(list1, list2): result = False for x in list1: for y in list2: if x == y: result = True return result print(common_data([,,,,], [,,,,])) print(common_data([,,,,], [,,,]))
01 Python增加元素,不像其他语言使用现实的操作接口,只需要dict[1]=3,如果字典中不存在1,则直接新增元素键值对(1,3),如果存在则替换键1为3. if key in dict:判断出key是否在dict字典中. 统计元素出现的次数: def word_count(nums): dict={} for it in nums: if it not in dict: dict[it] = 1 else: dict[it] += 1 return dict print(word_cou