Python 實現過濾掉列表中唯一值

2022-09-27 11:39:09 字數 1356 閱讀 6846

目錄

from collections import counter

def filter_unique(lst):

return [item for item, count in counter(lst).items() if co > 1]

# examples

filter_unique([1, 2, 2, 3, 4, 4, 5]) # [2, 4]

函式使用collections.counter函式對列表進行計數,在通過列表推導式,將非唯一值過濾出去(過濾掉計數大於1的值)。

class collections.counter([iterable-or-mapping])

counter是乙個dict的子類,用於計數可雜湊物件。它是乙個集合,元素像字典鍵(key)一樣儲存,它們的計數儲存為值。計數可以是任何整數值,包括0和負數。它可以接收乙個可迭代物件,並對其元素進行計數。

其成員函式items()將返回乙個字典的鍵值對的新檢視。再結合collections.,上www.cppcns.com述**中counter(lst).items()將乙個列表轉化成了(元素,計數)對。

列表推導式提供了乙個更簡單的建立列表的方法。常見的用法是把某種操作應用於序列或可迭代物件的每個元素上,然後使用其結果來建立列表,或者通過滿足某些特定條件元素來建立子串行。

列表推導式的結構是由一對方括號所包含的以下內容:乙個表示式,後面跟乙個for子句,然後是零個或多個for或if子句。其結果將是乙個新列表,由對表示式依據後面的for和if子句的內www.cppcns.com容進行求值計算而得出。

上面filter_unique可以等價的寫成:

from collections import counter

def filter_unique(lst):

temp_list =

for item, count in counter(lst).items():

if count > 1:

temp_list.append(item)

return temp_list

# examples

filter_unique([1, 2, 2, 3, 4, 4, 5]) # [2, 4]

from collections import counter

def filter_non_unique(lst):

return [item for item, count in counter(lst).items() if count == 1]

# examples

fil 2, 2, 3, 4, 4, 5]) # [1, 3, 5]

filter_non_unique和上面的**相似,功能是過濾掉列表中的非唯一值。

ALV中處理過濾掉的行

有時候我們在alv的時候,客戶會對輸出的資料進行二次篩選,這時候如果我們做全選 checkbox 系統會把我們過濾掉得資料也選擇 用下面的method就可避免此問題 1 data it rows type lvc t fidx.2data wa rows like line ofit rows.34...

python中列表與字典的底層實現

本文主要圍繞效率開始說起 常見演算法效率複雜度 o 1 o logn o n o nlogn o n2 o n3 o 2n o n o nn python列表內建操作方法的複雜度如下 常見的順序表儲存方式如下,python則採用的是分離式結構,表頭只儲存最大容量值,元素個數和儲存區的實體地址,儲存區...

python中楊輝三角的實現(列表方法實現)

演算法一 楊輝三角的基本實現 import datetime start datetime.datetime.now n 1000 這裡可以設定計算到幾行 list 設定乙個空列表 count 1 for i in range n cur 1 if i 0 第一行屬於特殊行 實際程式設計時要實時注意...