تم تكليفك بكتابة وظيفة **تصفية النص** التي يمكنها تحديد وإزالة أي تعليقات من ملف التعليمات البرمجية المصدر. في هذه المشكلة، يتم تعريف التعليق على أنه أي سطر يبدأ بالحرف "#". يجب أن تأخذ الوظيفة قائمة من السلاسل كمدخلات، حيث تمثل كل سلسلة سطرًا من التعليمات البرمجية، ويجب أن تُرجع القائمة المعدلة مع إزالة جميع التعليقات. إذا كان السطر يحتوي على رمز وتعليق معًا، فيجب إزالة التعليق بينما يجب أن يظل الرمز دون تغيير.

اكتب دالة `remove_comments(lines: List[str]) -> List[str]` تنفذ تصفية النص وترجع القائمة المعدلة مع إزالة التعليقات.

**مثال**

مدخل:
```بيثون
خطوط = [
    'x = 10'، # هذا تعليق
    'y = 20', # تعليق آخر
    'print("Hello World")' # بيان الطباعة
]
```

انتاج:
```بيثون
['x = 10', 'y = 20', 'print("Hello World")']
```

**قيود**
- الحد الأقصى لطول كل سطر هو 100 حرف.
- يمكن أن يصل عدد الأسطر في قائمة الإدخال إلى 1000 سطر.
{"evolved_from": null, "kind": "synthetic", "source": "argilla/DistiCoder-dpo-binarized"}