test_flow中有
wait 30 sec
wait 60 sec…
可能還有更多
只要含有wait這個關鍵字
就要過濾掉
blacklist = [“wait”]
沒有寫得很詳細
[“wait 30 sec”,”wait 60 sec”]
如何過濾掉含有wait關鍵字的step?
code:
# -*- coding: utf-8 -*-
"""
Created on Sat Nov 16 07:22:55 2024
@author: SavingKing
"""
# 定義測試流程的列表
test_flow = ["step 1", "wait 30 sec", "step 2", "wait 60 sec", "step 3"]
# 定義黑名單詞匯
blacklist = ["wait"]
# 創建一個空列表用於存放過濾後的步驟
filtered_flow = []
# 創建一個空列表用於收集被黑名單過濾掉的步驟
blacklisted_steps = []
# 遍歷原始的測試流程列表
for step in test_flow:
# 檢查當前步驟是否包含黑名單中的詞匯
contains_blacklisted_word = False
for black_word in blacklist:
if black_word in step:
contains_blacklisted_word = True
break # 如果發現黑名單詞匯,中斷內層循環
# 如果當前步驟不包含任何黑名單詞匯,則添加到過濾後的列表中
if not contains_blacklisted_word:
filtered_flow.append(step)
else:
# 如果包含黑名單詞匯,將該步驟添加到黑名單過濾列表中
blacklisted_steps.append(step)
# 打印過濾後的結果
print("過濾後的測試流程:", filtered_flow)
# 打印被黑名單過濾掉的步驟
print("被黑名單過濾掉的步驟:", blacklisted_steps)
代碼解釋:
初始化列表:除了原本的 filtered_flow 用於存放過濾後的步驟之外,新增一個 blacklisted_steps 列表用來收集被黑名單詞匯過濾掉的步驟。
循環處理:遍歷每一個步驟,並檢查是否包含黑名單中的詞匯。
黑名單檢查:通過內層循環和布爾變量 contains_blacklisted_word 進行黑名單詞匯的檢查。
分類收集:根據步驟是否包含黑名單詞匯,將步驟分別添加到 filtered_flow 或 blacklisted_steps 列表中。
輸出結果:最後分別打印過濾後的步驟和被黑名單過濾掉的步驟,以供用戶確認。
這種方法可以清晰地將需要的信息展示給用戶,方便用戶了解哪些步驟被保留,哪些被過濾掉,從而做出相應的決策或調整。
輸出結果:
推薦hahow線上學習python: https://igrape.net/30afN
用def function修改得更結構化:
# -*- coding: utf-8 -*-
"""
Created on Sat Nov 16 07:22:55 2024
@author: SavingKing
"""
# 定義測試流程的列表
test_flow = ["step 1", "wait 30 sec", "step 2", "wait 60 sec", "step 3"]
# 定義黑名單詞匯
blacklist = ["wait"]
def judge_black_word(step,blacklist = ["wait"]):
judge=False
for black_word in blacklist:
if black_word in step:
judge=True
break
return judge
# 創建一個空列表用於存放過濾後的步驟
filtered_flow = []
# 創建一個空列表用於收集被黑名單過濾掉的步驟
blacklisted_steps = []
# 遍歷原始的測試流程列表
for step in test_flow:
# 檢查當前步驟是否包含黑名單中的詞匯
# contains_blacklisted_word = False
# for black_word in blacklist:
# if black_word in step:
# contains_blacklisted_word = True
# break # 如果發現黑名單詞匯,中斷內層循環
# 如果當前步驟不包含任何黑名單詞匯,則添加到過濾後的列表中
if not judge_black_word(step,blacklist = ["wait"]):
filtered_flow.append(step)
else:
# 如果包含黑名單詞匯,將該步驟添加到黑名單過濾列表中
blacklisted_steps.append(step)
# 打印過濾後的結果
print("過濾後的測試流程:", filtered_flow)
# 打印被黑名單過濾掉的步驟
print("被黑名單過濾掉的步驟:", blacklisted_steps)
輸出結果:
定義測試流程的列表 (test_flow):包含了一系列的步驟,部分步驟中包含黑名單中的詞匯。
定義黑名單詞匯 (blacklist): 這是一個列表,包含了需要過濾掉的關鍵詞。
judge_black_word 函數:此函數接收一個步驟和一個黑名單列表,返回布爾值,指示步驟是否包含黑名單中的任何詞匯。
過濾列表的創建 (filtered_flow 和 blacklisted_steps):分別用於存放過濾後的步驟和被黑名單過濾掉的步驟。
遍歷和過濾:通過遍歷 test_flow 中的每個步驟,並使用 judge_black_word 函數判斷是否包含黑名單詞匯,根據判斷結果將步驟添加到相應的列表中。
輸出結果:打印過濾後的步驟和被過濾掉的步驟。
進行了一些簡化和注釋的優化:
# -*- coding: utf-8 -*-
"""
Created on Sat Nov 16 07:22:55 2024
@author: SavingKing
"""
# 定義測試流程的列表
test_flow = ["step 1", "wait 30 sec", "step 2", "wait 60 sec", "step 3"]
# 定義黑名單詞匯
blacklist = ["wait"]
def judge_black_word(step, blacklist):
"""檢查步驟中是否包含黑名單中的詞匯"""
return any(black_word in step for black_word in blacklist)
# 創建用於存放過濾後步驟和黑名單步驟的列表
filtered_flow = []
blacklisted_steps = []
# 遍歷原始的測試流程列表
for step in test_flow:
if not judge_black_word(step, blacklist):
filtered_flow.append(step)
else:
blacklisted_steps.append(step)
# 打印過濾後的結果
print("過濾後的測試流程:", filtered_flow)
print("被黑名單過濾掉的步驟:", blacklisted_steps)