www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 公眾號(hào)精選 > TsinghuaJoking
[導(dǎo)讀]方法1:樸素方法??這種方式是在遍歷整個(gè)list的基礎(chǔ)上,將第一個(gè)出現(xiàn)的元素添加在新的列表中。?示例代碼:#?Python?3?code?to?demonstrate?#?removing?duplicated?from?list?#?using?naive?methods???...



法1:樸素方法

??種方式是在遍歷整個(gè)list的基礎(chǔ)上,將第一個(gè)出現(xiàn)的元素添加在新的列表中。

? 示例代碼:

#?Python?3?code?to?demonstrate?
#?removing?duplicated?from?list?
#?using?naive?methods?
??
#?initializing?list
test_list?=?[1,?3,?5,?6,?3,?5,?6,?1]
print?("The?original?list?is?:?"? ??str(test_list))
??
#?using?naive?method
#?to?remove?duplicated?
#?from?list?
res?=?[]
for?i?in?test_list:
????if?i?not?in?res:
????????res.append(i)
??
#?printing?list?after?removal?
print?("The?list?after?removing?duplicates?:?"? ?str(res))

→ 輸出結(jié)果:

The?original?list?is?:?[1,?3,?5,?6,?3,?5,?6,?1]
The?list?after?removing?duplicates?:?[1,?3,?5,?6]

法2:列表解析式

??種方式實(shí)際上是第一種方法的簡(jiǎn)化版,它利用列表解析式,使用一行代碼就可以替代上面的循環(huán)方式。

? 示例代碼:

#?Python?3?code?to?demonstrate?
#?removing?duplicated?from?list?
#?using?list?comprehension
??
#?initializing?list
test_list?=?[1,?3,?5,?6,?3,?5,?6,?1]
print?("The?original?list?is?:?"? ??str(test_list))
??
#?using?list?comprehension
#?to?remove?duplicated?
#?from?list?
res?=?[]
[res.append(x)?for?x?in?test_list?if?x?not?in?res]
??
#?printing?list?after?removal?
print?("The?list?after?removing?duplicates?:?"? ?str(res))

→ 輸出結(jié)果:

The?original?list?is?:?[1,?3,?5,?6,?3,?5,?6,?1]
The?list?after?removing?duplicates?:?[1,?3,?5,?6]

法3:使用set()

??種方式是最流行的方法來(lái)去除列表中的重復(fù)元素。但該方法的最大的一個(gè)缺點(diǎn)就是使用過(guò)后列表中元素的順序不再繼續(xù)保持與原來(lái)一致了。

? 示例代碼:

#?Python?3?code?to?demonstrate?
#?removing?duplicated?from?list?
#?using?set()
??
#?initializing?list
test_list?=?[1,?5,?3,?6,?3,?5,?6,?1]
print?("The?original?list?is?:?"? ??str(test_list))
??
#?using?set()
#?to?remove?duplicated?
#?from?list?
test_list?=?list(set(test_list))
??
#?printing?list?after?removal?
#?distorted?ordering
print?("The?list?after?removing?duplicates?:?"? ?str(test_list))

→ 輸出結(jié)果:

The?original?list?is?:?[1,?5,?3,?6,?3,?5,?6,?1]
The?list?after?removing?duplicates?:?[1,?3,?5,?6]

法4:利用列表解析式 enumerate()

??方法是在列表解析式的基礎(chǔ)上利用枚舉來(lái)去除重復(fù)元素。通過(guò)檢查元素是否已經(jīng)在列表中存在從而將其略過(guò)。這種方法可以保持列表中的元素順序不會(huì)改變。

? 示例代碼:

#?Python?3?code?to?demonstrate?
#?removing?duplicated?from?list?
#?using?list?comprehension? ?enumerate()
??
#?initializing?list
test_list?=?[1,?5,?3,?6,?3,?5,?6,?1]
print?("The?original?list?is?:?"? ??str(test_list))
??
#?using?list?comprehension? ?enumerate()
#?to?remove?duplicated?
#?from?list?
res?=?[i?for?n,?i?in?enumerate(test_list)?if?i?not?in?test_list[:n]]
??
#?printing?list?after?removal?
print?("The?list?after?removing?duplicates?:?"? ?str(res))

→ 輸出結(jié)果:

The?original?list?is?:?[1,?5,?3,?6,?3,?5,?6,?1]
The?list?after?removing?duplicates?:?[1,?5,?3,?6]

法5:利用OrderedDict.fromkeys()

??是完成特殊任務(wù)中最快的方法,利用 collections.OrderedDict.fromkeys()。它先是將列表中的重復(fù)項(xiàng)移除并返回一個(gè)字典,最后轉(zhuǎn)換成列表。這種方法對(duì)于字符串也可以進(jìn)行處理。

? 示例代碼:

#?Python?3?code?to?demonstrate?
#?removing?duplicated?from?list?
#?using?collections.OrderedDict.fromkeys()
from?collections?import?OrderedDict
??
#?initializing?list
test_list?=?[1,?5,?3,?6,?3,?5,?6,?1]
print?("The?original?list?is?:?"? ??str(test_list))
??
#?using?collections.OrderedDict.fromkeys()
#?to?remove?duplicated?
#?from?list?
res?=?list(OrderedDict.fromkeys(test_list))
??
#?printing?list?after?removal?
print?("The?list?after?removing?duplicates?:?"? ?str(res))

→ 輸出結(jié)果:

The?original?list?is?:?[1,?5,?3,?6,?3,?5,?6,?1]
The?list?after?removing?duplicates?:?[1,?5,?3,?6]

法6:處理嵌套列表中的重復(fù)元素

??對(duì)于多維列表列表嵌套)中的重復(fù)元素去除。這里假設(shè)列表中元素(也是列表)它們具有相同的元素(但不一定順序相同)都被當(dāng)做重復(fù)元素。那么下面使用 set() sorted() ?方法來(lái)完成任務(wù)。

? 示例代碼:

#?Python3?code?to?demonstrate
#?removing?duplicate?sublist?
#?using?set()? ?sorted()
??
#?initializing?list
test_list?=?[[1,?0,?-1],?[-1,?0,?1],?[-1,?0,?1],
???????????????????????????[1,?2,?3],?[3,?4,?1]]
??
#?printing?original?list
print("The?original?list?:?"? ?str(test_list))
??
#?using?set()? ?sorted()
#?removing?duplicate?sublist
res?=?list(set(tuple(sorted(sub))?for?sub?in?test_list))
??
#?print?result
print("The?list?after?duplicate?removal?:?"? ?str(res))??

→ 輸出結(jié)果:

The?original?list?:?[[1,?0,?-1],?[-1,?0,?1],?[-1,?0,?1],?[1,?2,?3],?[3,?4,?1]]
The?list?after?duplicate?removal?:?[(-1,?0,?1),?(1,?3,?4),?(1,?2,?3)]
??也可以利用 set() map() sorted()

? 示例代碼:

#?Python3?code?to?demonstrate
#?removing?duplicate?sublist?
#?using?set()? ?map()? ?sorted()
??
#?initializing?list
test_list?=?[[1,?0,?-1],?[-1,?0,?1],?[-1,?0,?1],
???????????????????????????[1,?2,?3],?[3,?4,?1]]
??
#?printing?original?list
print("The?original?list?:?"? ?str(test_list))
??
#?using?set()? ?map()? ?sorted()
#?removing?duplicate?sublist
res?=?list(set(map(lambda?i:?tuple(sorted(i)),?test_list)))
??
#?print?result
print("The?list?after?duplicate?removal?:?"? ?str(res))

→ 輸出結(jié)果:

The?original?list?:?[[1,?0,?-1],?[-1,?0,?1],?[-1,?0,?1],?[1,?2,?3],?[3,?4,?1]]
The?list?after?duplicate?removal?:?[(-1,?0,?1),?(1,?3,?4),?(1,?2,?3)]

參考資料

[1]Python – Ways to remove duplicates from list: https://www.geeksforgeeks.org/python-ways-to-remove-duplicates-from-list/

[2]Python | Remove duplicates from nested list: https://www.geeksforgeeks.org/python-remove-duplicates-from-nested-list/?ref=rp



公眾號(hào)留言


§01 陽(yáng)光的眷顧
大大,請(qǐng)問(wèn)今年的室內(nèi)組,會(huì)有這樣的光嗎?

▲ 上帝之光照射在賽場(chǎng)上
回復(fù): ?在一些賽區(qū)這種情況是有可能的。

§02 壓的恐嚇

卓大大,投稿。室外電磁賽道。

▲ 室外電磁賽道鋪設(shè)現(xiàn)場(chǎng)
▲ 室外越野組調(diào)試現(xiàn)場(chǎng)的警告語(yǔ)
▲ 室外寒冷,穿著羽絨衣在調(diào)試車(chē)模

§03 走停停的電磁車(chē)

卓老師直角可以像這樣連續(xù)倒車(chē)嗎?

▲ 走走停停的電磁車(chē)模
回復(fù): 這是允許的。

§04 車(chē)?yán)惐荣悎?chǎng)地

卓大,單車(chē)省賽賽道會(huì)是前幾天邀請(qǐng)賽那樣的嗎 ?卓大比賽的坡道會(huì)比今天黑龍江邀請(qǐng)賽的坡道大嗎?

▲ 室外單車(chē)?yán)惖馁悎?chǎng)
回復(fù): ?自從看到黑龍江省賽的這個(gè)室外單車(chē)比賽現(xiàn)場(chǎng),也解決了我的一個(gè)大難題。這個(gè)賽道足夠大,滿足“拉力賽”的要求。元素足夠豐富。同時(shí)又通過(guò)了比賽的驗(yàn)證,所以這個(gè)場(chǎng)地應(yīng)該是我們暑期分賽區(qū)賽場(chǎng)的原型了。需要感謝哈工大組織的這次黑龍江省賽給出的設(shè)計(jì)方案。只是坡道稍微矮了點(diǎn)。

那我要抓緊時(shí)間調(diào)了。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
關(guān)閉
關(guān)閉