python列表去重的方法_Python列表中去重的多種方法

怎么快速的對列表進行去重呢,去重之后原來的順序會不會改變呢?

去重之后順序會改變

set去重

列表去重改變原列表的順序了l1 = [1,4,4,2,3,4,5,6,1]

l2 = list(set(l1))

print(l2) # [1, 2, 3, 4, 5, 6]

但是,可以通過列表中索引(index)的方法保證去重后的順序不變。l1 = [1,4,4,2,3,4,5,6,1]

l2 = list(set(l1))

l2.sort(key=l1.index)

print(l2) # [1, 4, 2, 3, 5, 6]

itertools.groupby

itertools.groupbyimport itertools

l1 = [1,4,4,2,3,4,5,6,1]

l1.sort()

l = []

it = itertools.groupby(l1)

for k,g in it:

l.append(k)

print(l) # [1, 2, 3, 4, 5, 6]

fromkeys l1 = [1,4,4,2,3,4,5,6,1]

t = list({}.fromkeys(l1).keys())

# 解決順序問題

t.sort(key=l1.index)

print(t) # [1, 4, 2, 3, 5, 6]

通過刪除索引l1 = [1,4,4,2,3,4,5,6,1]

t = l1[:]

for i in l1:

while t.count(i) >1:

del t[t.index(i)]

# 解決順序問題

t.sort(key=l1.index)

print(t) # [1, 4, 2, 3, 5, 6]

去重不改變順序

建立新列表[]l1 = [1,4,4,2,3,4,5,6,1]

new_l1 = []

for i in l1:

if i not in new_l1:

new_l1.append(i)

print(new_l1) # [1, 4, 2, 3, 5, 6]

reduce方法from functools import reduce

l1 = [1,4,4,2,3,4,5,6,1]

func = lambda x,y:x if y in x else x + [y]

print(reduce(func,[[],]+l1)) # [1, 4, 2, 3, 5, 6]

https://www.cnblogs.com/xxpythonxx/p/12181224.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/271293.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/271293.shtml
英文地址,請注明出處:http://en.pswp.cn/news/271293.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

lambda中orElse(null)使用

如果取得第一個元素,則用findFirst() 最后提取元素的時候,可以用:get或者orElse(null) 這里要注意的是,規范用法是orElse(null) 用get方法,如果filter中獲取的是null,那么用get方法會拋出異常&#xff1…

求凸包(兩遍掃描,求上下凸包的方法)

求凸包模版 struct point { double x,y; double val,len; }points[20]; point points1[20]; point points2[20]; const int INF1e8; bool cmp(point a,point b) { if(a.xb.x) return a.y<b.y; return a.x<b.x; } double chaji(point a,point b,point c,point d) { return…

數據挖掘:數據倉庫相關知識筆記

1、數據倉庫介紹數據倉庫&#xff08;DW&#xff09;&#xff1a;可以滿足管理人員的決策分析需要&#xff0c;在數據庫基礎上產生了滿足決策分析需要的數據環境。傳統數據庫和數據倉庫比較比較內容傳統數據庫數據倉庫數據內容當前數據歷史的、存檔的、歸納的、計算的數據目標面…

python200行代碼_如何用200行Python代碼“換臉”

本文將介紹如何編寫一個只有200行的Python腳本&#xff0c;為兩張肖像照上人物的“換臉”。 這個過程可分為四步&#xff1a; 檢測面部標記。 旋轉、縮放和轉換第二張圖像&#xff0c;使之與第一張圖像相適應。 調整第二張圖像的色彩平衡&#xff0c;使之與第一個相匹配。 把第…

git的smart Checkout跟force checkout的區別

1:在切換分支的時候,常常會遇到下圖的問題 是因為我在test分支上修改了代碼&#xff0c;但是沒有commit&#xff0c;切換到其他分支上就彈出了這個窗口 我們需要怎么處理呢 2:可以看到彈框底部有Force Checkout Dont checkout Smart Checkout,表示什么意思呢 Smart …

python畫圖中grid等于true_Python中的matplotlib畫圖總結

# -*- coding: utf-8 -*-import matplotlib.pyplot as pltfrom numpy.random import randnimport numpy as npfrom io import StringIOimport pandas as pd#Create figurefig plt.figure()#創建子圖subplot: 表示2X2&#xff0c;即4個子圖中的第1個圖&#xff0c;編號為1#參數…

數據挖掘相關知識介紹

1、數據挖掘定義把數據庫中大量數據背后隱藏的重要信息抽取出來&#xff0c;然后為公司創造很多潛在的利潤&#xff0c;針對這種海量數據庫中挖掘數據信息的技術稱為數據挖掘&#xff08;DM&#xff09;。2、數據挖掘的分類按照數據庫種類&#xff1a;關系型數據庫的數據挖掘、…

Yii2 behavior運用

1 class ReturnDataTypeBehaviors extends Behavior2 {3 4 public $type json;5 public $pcOrMobile pc; // or mobile6 7 //控制器執行之后事件8 public function events()9 { 10 return [Controller::EVENT_BEFORE_ACTION > beforeType]; …

c語言數字靈活多變的訪問形式_學習C語言你必須知道的事兒!

是新朋友嗎&#xff1f;記得先點藍字關注我哦&#xff5e;今日課程菜單Java全棧開發 | Web前端H5大數據開發 | 大數據分析人工智能Python | 人工智能物聯網有聽過這樣一段話&#xff1a;在編程界&#xff0c;C語言就是道家的“三”&#xff0c;A生B&#xff0c;B生C&#xff0c…

IDEA通過git怎么回滾到某個提交節點或某個版本

1:先右鍵點擊項目&#xff0c;選擇git,接著Show History 2:這里會顯示有歷史提交的版本記錄,假設我要回滾到箭頭處到提交&#xff0c;操作如下 3:右鍵點擊&#xff0c;點擊Copy Revision Number 在編輯器里粘貼&#xff0c;可以看到如下 4:右擊選擇項目&#xff0c;選擇git -&…

linux與mysql_Linux與MySQL

mysql -h localhost -u 用戶名 -p 密碼 //連接數據庫use desk_show; //使用數據庫show tables; //顯示數據表describe desk6_0; …

關系數據庫基礎知識介紹

1、關系的相關名詞介紹屬性&#xff08;Attribute&#xff09;:描述事物的若干特征稱為屬性。比如學號、姓名、職位、年齡等。域&#xff08;Domain&#xff09;&#xff1a;針對屬性的取值范圍集合。比如性別取值為男、女、學號的長度為8位等。一般在關系數據模型中&#xff0…

android中xmlns:tools屬性詳解

第一部分 安卓開發中&#xff0c;在寫布局代碼的時候&#xff0c;ide可以看到布局的預覽效果。 但是有些效果則必須在運行之后才能看見&#xff0c;比如這種情況&#xff1a;TextView在xml中沒有設置任何字符&#xff0c;而是在activity中設置了text。因此為了在ide中預覽效果&…

mysql sleep 5908_mysql連接卡死,很多線程sleep狀態,導致CPU中mysqld占用率極高(問題原因還待考證)...

mysql> show processlist;—–————-——————–| Id | User | Host | db | Command | Time| State | Info—–————-——————–|207|root |192.168.0.2:51621 |mytest | Sleep | 5 | | NULL|208|root |192.168.0.2:51622 |mytest | Sleep | 5 | | NULL|220|ro…

python excel庫 linux_用python寫一個簡單的excel表格獲取當時的linux系統信息

最近在學習excel表格的制作&#xff0c;順便結合之前學習的內容&#xff0c;利用python的兩個模板&#xff0c;分別是獲取系統信息的psutil&#xff0c;和生成excel表格的xlsxwriter。利用這兩個模板將生成一個簡單的excel表格&#xff0c;獲取當時的linux系統信息&#xff0c;…

mac下安裝brew下載非常慢解決方法

一鍵解決&#xff1a;自動腳本(全部國內地址)&#xff08;在Mac os終端中復制粘貼回車下面這句話) /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"輸入y 在終端環境下&#xff0c;brew --version 查看brew的版本&#xf…

關系數據庫模式和完整性約束相關概念

一、關系數據庫模式介紹關系的描述形式&#xff1a;R(U,D.dom,F)&#xff0c;簡化形式&#xff1a;R(U)、R(A1,A2,A3...An)R:表示關系名&#xff1b;U組成該關系的屬性名集合&#xff1b;D是屬性的域&#xff1b;dom是屬性向域的映像集合&#xff1b;F為屬性間數據的依賴關系集…

分布式鎖的實現方式

在進行大型網站技術架構設計以及業務實現的過程中&#xff0c;多少都會遇到需要使用分布式鎖的情況。那么問題也就接踵而至。分布式鎖zk和memcached以及redis三者都能實現&#xff0c;同樣是分布式鎖&#xff0c;三者的區別何在&#xff1f;各自適用什么場景&#xff1f; 一、Z…

關系數據庫基礎:關系代數運算知識筆記

1、關系代數運算符集合運算符&#xff1a;并(U)、差(-)、交(∩)、笛卡爾積()專門的關系運算符&#xff1a;選擇(?)、投影(π)、連接&#xff08;∞&#xff09;、除()算術比較符&#xff1a;大于&#xff08;&#xff1e;&#xff09;、大于等于&#xff08;≥&#xff09;、小…

POJ 1308 Is It A Tree? (并查集)

Is It A Tree?題目鏈接&#xff1a; http://acm.hust.edu.cn/vjudge/contest/123393#problem/M Description A tree is a well-known data structure that is either empty (null, void, nothing) or is a set of one or more nodes connected by directed edges between node…