PYTHON list 与 字典练习

PYTHON list 与 字典练习,第1张

概述利用python的list与字典分别实现:要求把all_nums平均分成两份,统计前半部分数据中有哪些数字出现在后半部分中,并输出,数字不能重复。也就是说:假如all_nums=[1,3,3,1,2,3],那最终的输出结果为[1,3],而不是[1,3,3]list实现:#ecoding=utf-8importrandomimporttime# 利用python的List 与 字典 分别实现:

要求把all_nums平均分成两份,统计前半部分数据中有哪些数字出现在后半部分中,并输出,数字不能重复。
也就是说:假如all_nums = [1,3,3,1,2,3],那最终的输出结果为[1,3],而不是[1,3,3]

List实现:
# eCoding=utf-8import randomimport time# 生成一个长度为100000的随机Listdef 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_allnumsif __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-8import randomimport time# 生成一个长度为100000的随机Listdef 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 与 字典练习全部内容,希望文章能够帮你解决PYTHON list 与 字典练习所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1187561.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存