Hướng dẫn how do i remove repeated words from a string in python? - làm cách nào để xóa các từ lặp lại khỏi chuỗi trong python?

Ví dụ sau:

string1 = "calvin klein design dress calvin klein"

Làm thế nào tôi có thể loại bỏ hai bản sao thứ hai

string1 = "calvin klein design dress calvin klein"
words = string1.split()
print (" ".join(sorted(set(words), key=words.index)))
4 và
string1 = "calvin klein design dress calvin klein"
words = string1.split()
print (" ".join(sorted(set(words), key=words.index)))
5?

Kết quả sẽ trông giống như

string2 = "calvin klein design dress"

Chỉ nên loại bỏ các bản sao thứ hai và không nên thay đổi trình tự của các từ!

Hướng dẫn how do i remove repeated words from a string in python? - làm cách nào để xóa các từ lặp lại khỏi chuỗi trong python?

Martin Thoma

Huy hiệu vàng 115K150575 Huy hiệu bạc887 Huy hiệu đồng150 gold badges575 silver badges887 bronze badges

Hỏi ngày 17 tháng 10 năm 2011 lúc 13:08Oct 17, 2011 at 13:08

string1 = "calvin klein design dress calvin klein"
words = string1.split()
print (" ".join(sorted(set(words), key=words.index)))

Điều này sắp xếp tập hợp tất cả các từ (duy nhất) trong chuỗi của bạn theo chỉ mục của từ trong danh sách các từ gốc.

Đã trả lời ngày 17 tháng 10 năm 2011 lúc 13:40Oct 17, 2011 at 13:40

MarkusmarkusMarkus

3.3373 Huy hiệu vàng23 Huy hiệu bạc25 Huy hiệu Đồng3 gold badges23 silver badges25 bronze badges

def unique_list(l):
    ulist = []
    [ulist.append(x) for x in l if x not in ulist]
    return ulist

a="calvin klein design dress calvin klein"
a=' '.join(unique_list(a.split()))

Đã trả lời ngày 17 tháng 10 năm 2011 lúc 13:12Oct 17, 2011 at 13:12

Spicavigospicavigospicavigo

4.04021 Huy hiệu bạc28 Huy hiệu đồng21 silver badges28 bronze badges

7

Trong Python 2.7+, bạn có thể sử dụng

string1 = "calvin klein design dress calvin klein"
words = string1.split()
print (" ".join(sorted(set(words), key=words.index)))
6 cho điều này:

from collections import OrderedDict
s = "calvin klein design dress calvin klein"
print ' '.join(OrderedDict((w,w) for w in s.split()).keys())

Đã trả lời ngày 17 tháng 10 năm 2011 lúc 13:21Oct 17, 2011 at 13:21

NPENPENPE

474K105 Huy hiệu vàng931 Huy hiệu bạc1003 Huy hiệu Đồng105 gold badges931 silver badges1003 bronze badges

1

Cắt và dán từ các công thức nấu ăn itertools

from itertools import ifilterfalse

def unique_everseen(iterable, key=None):
    "List unique elements, preserving order. Remember all elements ever seen."
    # unique_everseen('AAAABBBCCDAABBB') --> A B C D
    # unique_everseen('ABBCcAD', str.lower) --> A B C D
    seen = set()
    seen_add = seen.add
    if key is None:
        for element in ifilterfalse(seen.__contains__, iterable):
            seen_add(element)
            yield element
    else:
        for element in iterable:
            k = key(element)
            if k not in seen:
                seen_add(k)
                yield element

Tôi thực sự ước họ có thể đi trước và sớm thực hiện một mô -đun trong số các công thức nấu ăn đó. Tôi rất muốn có thể làm

string1 = "calvin klein design dress calvin klein"
words = string1.split()
print (" ".join(sorted(set(words), key=words.index)))
7 thay vì sử dụng cắt và dán mỗi khi tôi cần một cái gì đó.

Sử dụng như thế này:

def unique_words(string, ignore_case=False):
    key = None
    if ignore_case:
        key = str.lower
    return " ".join(unique_everseen(string.split(), key=key))

string2 = unique_words(string1)

Đã trả lời ngày 17 tháng 10 năm 2011 lúc 13:22Oct 17, 2011 at 13:22

3

string2 = ' '.join(set(string1.split()))

Explanation::

string1 = "calvin klein design dress calvin klein"
words = string1.split()
print (" ".join(sorted(set(words), key=words.index)))
8 - Đó là một phương pháp phân chia chuỗi để liệt kê (không có tham số, nó chia theo khoảng trắng)
string1 = "calvin klein design dress calvin klein"
words = string1.split()
print (" ".join(sorted(set(words), key=words.index)))
9 - it is type of unordered collections that exclude dublicates
def unique_list(l):
    ulist = []
    [ulist.append(x) for x in l if x not in ulist]
    return ulist

a="calvin klein design dress calvin klein"
a=' '.join(unique_list(a.split()))
0 - mean that you want to join list from params to string with 'separator' between elements

Đã trả lời ngày 9 tháng 11 năm 2018 lúc 8:33Nov 9, 2018 at 8:33

Hướng dẫn how do i remove repeated words from a string in python? - làm cách nào để xóa các từ lặp lại khỏi chuỗi trong python?

3

string = 'calvin klein design dress calvin klein'

def uniquify(string):
    output = []
    seen = set()
    for word in string.split():
        if word not in seen:
            output.append(word)
            seen.add(word)
    return ' '.join(output)

print uniquify(string)

Đã trả lời ngày 17 tháng 10 năm 2011 lúc 13:27Oct 17, 2011 at 13:27

Hướng dẫn how do i remove repeated words from a string in python? - làm cách nào để xóa các từ lặp lại khỏi chuỗi trong python?

Ekhumoroekhumoroekhumoro

112K19 Huy hiệu vàng218 Huy hiệu bạc324 Huy hiệu đồng19 gold badges218 silver badges324 bronze badges

Bạn có thể sử dụng một bộ để theo dõi các từ đã được xử lý.

words = set()
result = ''
for word in string1.split():
    if word not in words:
        result = result + word + ' '
        words.add(word)
print result

Đã trả lời ngày 17 tháng 10 năm 2011 lúc 13:10Oct 17, 2011 at 13:10

Pablo Santa Cruzpablo Santa CruzPablo Santa Cruz

173K32 Huy hiệu vàng238 Huy hiệu bạc291 Huy hiệu Đồng32 gold badges238 silver badges291 bronze badges

2

Một số câu trả lời khá gần với điều này nhưng không hoàn toàn kết thúc ở nơi tôi đã làm:

string2 = "calvin klein design dress"
0

Tất nhiên, nếu bạn muốn nó là một chút sạch hơn hoặc nhanh hơn, chúng ta có thể tái cấu trúc một chút:

string2 = "calvin klein design dress"
1

Tôi nghĩ rằng phiên bản thứ hai là người biểu diễn như bạn có thể nhận được một lượng nhỏ mã. (Có thể sử dụng nhiều mã hơn để thực hiện tất cả các công việc trong một lần quét trên chuỗi đầu vào nhưng đối với hầu hết các khối lượng công việc, điều này là đủ.)

Đã trả lời ngày 17 tháng 10 năm 2011 lúc 22:13Oct 17, 2011 at 22:13

Chris Phillipschris PhillipsChris Phillips

10,9k3 Huy hiệu vàng34 Huy hiệu bạc45 Huy hiệu Đồng3 gold badges34 silver badges45 bronze badges

Câu hỏi: Xóa các bản sao trong một chuỗi

string2 = "calvin klein design dress"
2

Đã trả lời ngày 16 tháng 6 năm 2018 lúc 23:44Jun 16, 2018 at 23:44

Hướng dẫn how do i remove repeated words from a string in python? - làm cách nào để xóa các từ lặp lại khỏi chuỗi trong python?

1

Sử dụng chức năng Numpy Làm cho nhập khẩu tốt hơn để có bí danh cho nhập (như NP)

string2 = "calvin klein design dress"
3

Và sau đó bạn có thể bing nó như thế này để loại bỏ các bản sao khỏi mảng, bạn có thể sử dụng nó theo cách này

string2 = "calvin klein design dress"
4

Đối với trường hợp của bạn nếu bạn muốn kết quả trong chuỗi, bạn có thể sử dụng

string2 = "calvin klein design dress"
5

Đã trả lời ngày 8 tháng 6 năm 2020 lúc 12:04Jun 8, 2020 at 12:04

Sulman Maliksulman MalikSulman Malik

1351 Huy hiệu vàng1 Huy hiệu bạc7 Huy hiệu đồng1 gold badge1 silver badge7 bronze badges

11 và 2 hoạt động hoàn hảo:

string2 = "calvin klein design dress"
6

và 2

string2 = "calvin klein design dress"
6

Đã trả lời ngày 17 tháng 4 năm 2016 lúc 16:38Apr 17, 2016 at 16:38

1

Bạn có thể xóa các từ trùng lặp hoặc lặp lại khỏi tệp văn bản hoặc chuỗi bằng các mã sau -

string2 = "calvin klein design dress"
8

P.S. -DO các nhận thức theo yêu cầu. Hi vọng điêu nay co ich!!!

Đã trả lời ngày 25 tháng 6 năm 2018 lúc 7:22Jun 25, 2018 at 7:22

Hướng dẫn how do i remove repeated words from a string in python? - làm cách nào để xóa các từ lặp lại khỏi chuỗi trong python?

Mà không sử dụng chức năng phân chia (sẽ giúp trong các cuộc phỏng vấn)

string2 = "calvin klein design dress"
9

Taazar

1.54518 Huy hiệu bạc27 Huy hiệu đồng18 silver badges27 bronze badges

Đã trả lời ngày 6 tháng 3 năm 2020 lúc 12:06Mar 6, 2020 at 12:06

Khởi tạo danh sách

string1 = "calvin klein design dress calvin klein"
words = string1.split()
print (" ".join(sorted(set(words), key=words.index)))
0

Sử dụng
string1 = "calvin klein design dress calvin klein"
words = string1.split()
print (" ".join(sorted(set(words), key=words.index)))
9 và
def unique_list(l):
    ulist = []
    [ulist.append(x) for x in l if x not in ulist]
    return ulist

a="calvin klein design dress calvin klein"
a=' '.join(unique_list(a.split()))
2

string1 = "calvin klein design dress calvin klein"
words = string1.split()
print (" ".join(sorted(set(words), key=words.index)))
1

Kết quả

string1 = "calvin klein design dress calvin klein"
words = string1.split()
print (" ".join(sorted(set(words), key=words.index)))
2

Hướng dẫn how do i remove repeated words from a string in python? - làm cách nào để xóa các từ lặp lại khỏi chuỗi trong python?

Peter Csala

13.7K15 Huy hiệu vàng26 Huy hiệu bạc63 Huy hiệu đồng15 gold badges26 silver badges63 bronze badges

Đã trả lời ngày 17 tháng 10 năm 2021 lúc 12:39Oct 17, 2021 at 12:39

1

Bạn có thể làm điều đó chỉ đơn giản bằng cách lấy tập hợp được liên kết với chuỗi, đây là một đối tượng toán học không chứa các phần tử lặp lại theo định nghĩa. Nó đủ để tham gia các từ trong bộ trở lại thành một chuỗi:

string1 = "calvin klein design dress calvin klein"
words = string1.split()
print (" ".join(sorted(set(words), key=words.index)))
3

Đã trả lời ngày 9 tháng 11 năm 2018 lúc 8:28Nov 9, 2018 at 8:28

3