ภาพรวม
จาก list ของสตริง ให้คัดเฉพาะตัวที่ขึ้นต้นด้วย prefix ใด prefix หนึ่ง จาก prefix list ที่กำหนด
ตัวอย่างโค้ด
my_list = ["streek", "greet", "meet", "leeks", "mean"]
prefix_list = ["st", "ge", "me", "re"]
print("The list is:", my_list)
print("The prefix list is:", prefix_list)
my_result = [
s for s in my_list
if any(s.startswith(p) for p in prefix_list)
]
print("The result is:", my_result)
ผลลัพธ์
The list is: ['streek', 'greet', 'meet', 'leeks', 'mean']
The prefix list is: ['st', 'ge', 'me', 're']
The result is: ['streek', 'meet', 'mean']
คำอธิบาย
| String | Starts with | Match? |
|---|---|---|
| streek | st | ✓ |
| greet | gr (ไม่ใช่ ge) | ✗ |
| meet | me | ✓ |
| leeks | le | ✗ |
| mean | me | ✓ |
วิธีอื่นๆ
# ใช้ tuple ใน startswith (Python 3.9+)
my_result = [s for s in my_list if s.startswith(tuple(prefix_list))]
# Regex
import re
pattern = re.compile(r'^(?:' + '|'.join(map(re.escape, prefix_list)) + r')')
my_result = [s for s in my_list if pattern.match(s)]
# Case insensitive
my_result = [s for s in my_list if any(s.lower().startswith(p.lower()) for p in prefix_list)]
ประยุกต์ใช้
- Filter log lines by level prefix (ERROR:, WARN:, INFO:)
- Validate file extensions
- Route commands by prefix