要求把all_nums平均分成两份,统计前半部分数据中有哪些数字出现在后半部分中,并输出,数字不能重复。
也就是说:假如all_nums = [1,3,3,1,2,3],那最终的输出结果为[1,3],而不是[1,3,3]
# ecoding=utf-8 import random import time # 生成一个长度为100000的随机list def gen_list(): return [random.randint(0, 6000) for i in range(100000)] # 要求这个函数对all_nums进行统计,统计所有不重复数据,并输出。也就是相当于SQL的distinct。 def static(all_nums): news_allnums = [] for i in all_nums: if i not in news_allnums: news_allnums.append(i) #追加函数 return news_allnums #要求把all_nums平均分成两份,统计前半部分数据中有哪些数字出现在后半部分中,并输出,数字不能重复。 # 也就是说假如all_nums = [1,3,3,1,2,3],那最终的输出结果为[1,3],而不是[1,3,3] def compare(all_nums): l = len(all_nums) all = all_nums[l // 2: -1] all=static(all) nums = all_nums[0: l // 2] nums = static(nums) news_allnums = [] for i in all: if i in nums: news_allnums.append(i) #追加函数 return news_allnums if __name__ == '__main__': all_nums = gen_list() print(all_nums) timestamp = time.time() result = static(all_nums) print(time.time() - timestamp) nums = compare(all_nums) print(time.time() - timestamp)
# ecoding=utf-8 import random import time # 生成一个长度为100000的随机list def gen_list(): return [random.randint(0, 60000) for i in range(100000)] # 要求这个函数对all_nums进行统计,统计所有不重复数据,并输出。也就是相当于SQL的distinct。 def static(nums): return list(set(nums)) # 要求把all_nums平均分成两份,统计前半部分数据中有哪些数字出现在后半部分中,并输出,数字不能重复。 # 也就是说假如all_nums = [1,3,3,1,2,3],那最终的输出结果为[1,3],而不是[1,3,3] # 大家自己用set实现一下 def compare(nums): l = len(nums) A = nums[l // 2: -1] B = nums[0: l // 2] C = set(A) & set(B) #集合运算,集合中不含重复元素 return C # 使用字典统计all_nums中每个数字分别出现过多少次 def count(nums): dic = {} for i in nums: if i not in dic: dic[i] = 1 else: dic[i] = dic[i] + 1 return dic # 利用字典进行处理 # 使用字典统计all_nums前半部分的每个数字分别在后半部分中出现过多少次 ''' def countpare(nums): l = len(nums) A = nums[l // 2: -1] B = nums[0: l // 2] dic={} for i in B: if i in A: if i not in dic: dic[i] = 1 else: dic[i] = dic[i] + 1 else: dic[i] = 0 return dic ''' def countpare(nums): l = len(nums) A = nums[l // 2: -1] B = nums[0: l // 2] dicB = {} for i in B: if i not in dicB: dicB[i] = 0 #字典初始化 for i in A: if i in dicB: dicB[i] += 1 return dicB #字典采用哈希查询,比list快很多 if __name__ == '__main__': all_nums = gen_list() timestamp = time.time() #获取时间戳 result = static(all_nums) print(time.time() - timestamp) nums = compare(all_nums) print(time.time() - timestamp)#到现在用了多久秒 # COUNT=count(all_nums) # print(COUNT) COUNTPARE = countpare(all_nums) print(COUNTPARE) print(time.time() - timestamp)