أفضل طريقة لإزالة الأحرف المكررة (الكلمات) في السلسلة؟

StackOverflow https://stackoverflow.com/questions/636977

  •  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)

أطول من استخدام مجموعة، لكنه يحافظ على النظام.

يحرر: لا تهتم.فاتني الجزء في السؤال المتعلق بعدم أهمية الترتيب.استخدام مجموعة أفضل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top