Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python – กรองสตริงที่ขึ้นต้นด้วย Prefix ใดๆ จาก List (Startswith Any Prefix)

ภาพรวม

จาก 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']

คำอธิบาย

StringStarts withMatch?
streekst✓
greetgr (ไม่ใช่ ge)✗
meetme✓
leeksle✗
meanme✓

วิธีอื่นๆ


# ใช้ 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