python按條件拆分列表 按條件將列表拆分成塊

2021-10-11 20:30:23 字數 856 閱讀 4529

你為什麼不換個角度想想。你可以把每一次都對映成乙個dict:import re

from collections import defaultdict

regex = re.compile('([a-z]+\-)\d(\-[a-z]+)')

t = ["asdf-1-bhd","uuu-2-ggg","asdf-2-bhd","uuu-1-ggg","asdf-3-bhd"]

maps = defaultdict(list)

for x in t:

parts = regex.match(x).groups()

輸出:^$

這真的很快,因為你不必比較一件事和另一件事。在

以不同的方式思考

您最初的方法是迭代每個項並將它們彼此比較。這是過於複雜和不必要的。在

讓我們考慮一下我的**是做什麼的。首先它得到了精簡版:"asdf-1-bhd" -> "asdf bhd"

"uuu-2-ggg" -> "uuu ggg"

"asdf-2-bhd" -> "asdf bhd"

"uuu-1-ggg" -> "uuu ggg"

"asdf-3-bhd" -> "asdf bhd"

您已經可以開始檢視組,而我們還沒有比較任何內容!在

我們現在做一種反向對映。我們把右邊的所有東西都作為乙個鍵,把左邊的任何東西都放到乙個列表中,這個列表由左邊的值對映:'asdf bhd' -> ['asdf-1-bhd', 'asdf-2-bhd', 'asdf-3-bhd']

'uuu ggg' -> ['uuu-2-ggg', 'uuu-1-ggg']

在這裡,我們有我們的組由它們的共同計算值(key)定義。這將適用於任何數量的元素和組。在

python拆分列表 Python列表及其拆分

僅使用字串操作似乎是最簡單的 當然這是主觀的 和最快的 與迄今為止發布的其他解決方案相比,差距很大 a a b c d y z join a split a b c d y z 證明 基準 h3 按經過時間的公升序排序 python mtimeit s a a b x y p q 99 join a...

Python按條件刪除巢狀列表中的元素

今日在做深度學習過程中,資料採集的時候,因為粗心,coding有乙個小bug沒有看出,但是不影響資料採集。又因為資料採集量比較大,索性就按照出錯的方式,直接寫指令碼對資料進行處理,將bug抵消掉。思路 1 for迴圈遍歷,找出符合條件的元素,並將元素賦值成不會出現的資料,並做好count計數 2 再...

Python每日一記120 按條件篩選列表元素

關於條件列表中進行條件篩選元素,最近開始我們使用的方法是for迴圈,把滿足條件的裝進乙個列表,但是這樣不簡潔,且速度慢。那麼我們其實可以使用列表解析和filter函式 import pandas as pd import numpy as np import re import time from ...