我有 2 個串列:
images = ['ND_row_id_4026.png',
'ND_row_id_7693.png',
'ND_row_id_5285.png',
'ND_row_id_1045.png',
'ND_row_id_2135.png',
'ND_row_id_8155.png',
'ND_row_id_3135.png']
masks = ['MA_row_id_4026.png',
'MA_row_id_7693.png',
'MA_row_id_5285.png',
'MA_row_id_1045.png',
'MA_row_id_2135.png']
我想保留這些masks檔案。所以,我有 2 個包含影像和蒙版的檔案夾,我想保留masks串列中的所有蒙版和相應的影像。影像串列大于蒙版。
所以,我想從影像串列中保留:
images = ['ND_row_id_4026.png',
'ND_row_id_7693.png',
'ND_row_id_5285.png',
'ND_row_id_1045.png',
'ND_row_id_2135.png']
uj5u.com熱心網友回復:
似乎(根據您的示例資料)一個簡單的串列理解就足夠了,只需替換前綴進行比較:
res = [im for im in images if im.replace('ND', 'MA') in masks]
輸出(用于您的樣本資料):
[
'ND_row_id_4026.png',
'ND_row_id_7693.png',
'ND_row_id_5285.png',
'ND_row_id_1045.png',
'ND_row_id_2135.png'
]
如果您的串列很大,則預處理掩碼陣列會更有效(因為它是兩者中較小的一個):
m2 = [ma.replace('MA', 'ND') for ma in masks]
res = [im for im in images if im in m2]
uj5u.com熱心網友回復:
嘗試這個
images = [image for image in images if image in [x.replace('MA','ND') for x in masks]]
解釋:
[...]: 列出清單
[image for image in images]:沿影像串列迭代
... if image in [..]: 過濾結果,只回傳其他串列中的結果。
[x.replace('MA','ND') for x in masks]: 制作MA被替換為NDin 掩碼的串列
uj5u.com熱心網友回復:
也許這可以幫助你……使用 set 方法撰寫
代碼 :
import re
images = ['ND_row_id_4026.png',
'ND_row_id_7693.png',
'ND_row_id_5285.png',
'ND_row_id_1045.png',
'ND_row_id_2135.png',
'ND_row_id_8155.png',
'ND_row_id_3135.png']
masks = ['MA_row_id_4026.png',
'MA_row_id_7693.png',
'MA_row_id_5285.png',
'MA_row_id_1045.png',
'MA_row_id_2135.png']
# Fetching all digits from image file names
forimages = set( int(j[0]) for j in [ re.findall(r'\d ',val) for val in images ])
# Fetching all digits from mask file names
formasks = set(int(j[0]) for j in [ re.findall(r'\d ',val) for val in masks ])
# Applying intersection logic on digit to get comma digit between both
my_mask_data = [ 'ND_row_id_{0}.png'.format(i) for i in sorted(forimages.intersection(formasks)) ]
# Printing the output
print(my_mask_data)
輸出 :
['ND_row_id_1045.png', 'ND_row_id_2135.png', 'ND_row_id_4026.png', 'ND_row_id_5285.png', 'ND_row_id_7693.png']
如果您在上面發現任何問題……請隨時更改
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/521890.html
標籤:Python细绳列表
