国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python中實現對list做減法操作介紹

2020-02-23 06:17:39
字體:
來源:轉載
供稿:網友

問題描述:假設我有這樣兩個list,

          一個是list1,list1 = [1, 2, 3, 4, 5]
          一個是list2,list2 = [1, 4, 5]
          我們如何得到一個新的list,list3,
          list3中包括所有不在list2中出現的list1中的元素。
          即:list3 = list1 – list2
         
解決方案:我們可以用set(集合)操作
          list3 = list(set(list1) – set(list2))
         
          set操作會將一個list轉換成一個集合。
          假設:list_t = [1, 2, 3, 1]
          那么:list(set(list_t)) = [1, 2, 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函數

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 双辽市| 沁水县| 保亭| 铁岭市| 密山市| 海林市| 东安县| 许昌县| 奎屯市| 涪陵区| 南阳市| 石泉县| 斗六市| 微山县| 宁武县| 隆安县| 台北县| 铜山县| 邹城市| 浪卡子县| 伊金霍洛旗| 三台县| 黎平县| 博白县| 京山县| 屯昌县| 平乡县| 河池市| 土默特右旗| 皋兰县| 鸡东县| 蓬莱市| 浦北县| 且末县| 汤阴县| 平远县| 和林格尔县| 无锡市| 紫金县| 绥芬河市| 台北县|