加入收藏 | 设为首页 | 会员中心 | 我要投稿 商洛站长网 (https://www.0914zz.com/)- AI应用、CDN、边缘计算、云计算、物联网!
当前位置: 首页 > 编程开发 > Python > 正文

Python中实现对list做减法操作介绍

发布时间:2020-09-01 13:17:03 所属栏目:Python 来源:互联网
导读:问题描述:假设我有这样两个list,一个是list1,list1=[1,2,3,4,5]

问题描述:假设我有这样两个list,

          一个是list1,list1 = [1,2,3,4,5]
          一个是list2,list2 = [1,5]
          我们如何得到一个新的list,list3,
          list3中包括所有不在list2中出现的list1中的元素。
          即:list3 = list1 C list2
         
解决方案:我们可以用set(集合)操作
          list3 = list(set(list1) C set(list2))
         
          set操作会将一个list转换成一个集合。
          假设:list_t = [1,1]
          那么:list(set(list_t)) = [1,3]
          是的,重复的项会被删除。

其他方案:list3 = [i for i in list1 if i not in list2]       #可用于list分片
          这样写也很直观。
          但是在list很大的时候,没有set方法快。

额外知识:a = [[i,j] for i in range(2) for j in range(3)]
          这个和“其他方案”非常相似,
          都是在[]里面进行判断和计算。
          感觉很方便,至少比下面这样要方便、要快:
          a = []
          for i in range(2):
              for j in range(3):
                  a.append([i,j])

某些问题:如果list_tmp = [[1,2],[2,3]]
          即list里面不是单独的元素组成,而是list,
          那么set(list_tmp)会出问题。

还要研究:hash函数

(编辑:商洛站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读