أفضل طريقة لإزالة الأحرف المكررة (الكلمات) في السلسلة؟
-
10-07-2019 - |
سؤال
ما هي أفضل طريقة لإزالة أي أحرف مكررة ومجموعات من الأحرف مفصولة بمسافات في السلسلة؟
أعتقد أن هذا المثال يوضح ذلك بشكل أفضل:
foo = 'h k k h2 h'
ينبغي أن تصبح:
foo = 'h k h2' # order not important
مثال آخر:
foo = 's s k'
يصبح:
foo = 's k'
المحلول
' '.join(set(foo.split()))
لاحظ أن انقسام () بشكل افتراضي سوف تقسيم على كافة الأحرف المسافات الفارغة. (مثل علامات التبويب، أسطر جديدة، المسافات)
وحتى إذا كنت تريد تقسيم فقط على الفضاء ثم لديك لاستخدام:
' '.join(set(foo.split(' ')))
نصائح أخرى
هل تقصد؟
' '.join( set( someString.split() ) )
وهذا هو عبارة بمسافات فريدة من نوعها في أي ترتيب معين.
out = []
for word in input.split():
if not word in out:
out.append(word)
output_string = " ".join(out)
أطول من استخدام مجموعة، لكنه يحافظ على النظام.
يحرر: لا تهتم.فاتني الجزء في السؤال المتعلق بعدم أهمية الترتيب.استخدام مجموعة أفضل.
لا تنتمي إلى StackOverflow