PYTHON list 与 字典练习
2021/4/13 12:27:50
本文主要是介绍PYTHON list 与 字典练习,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
利用python的list 与 字典 分别实现:
要求把all_nums平均分成两份,统计前半部分数据中有哪些数字出现在后半部分中,并输出,数字不能重复。
也就是说:假如all_nums = [1,3,3,1,2,3],那最终的输出结果为[1,3],而不是[1,3,3]
- list实现:
# 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)
这篇关于PYTHON list 与 字典练习的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-08有遇到过吗?同样的规则 Excel 中 比Python 结果大
- 2024-03-30开始python成长之路
- 2024-03-29python optparse
- 2024-03-29python map 函数
- 2024-03-20invalid format specifier python
- 2024-03-18pool.map python
- 2024-03-18threads in python
- 2024-03-14python Ai 应用开发基础训练,字符串,字典,文件
- 2024-03-13id3 algorithm python
- 2024-03-13sum array elements python