Hướng dẫn how do you check if a word is present in a string in python? - làm thế nào để bạn kiểm tra xem một từ có trong một chuỗi trong python không?

Tôi đang làm việc với Python và tôi đang cố gắng tìm hiểu xem bạn có thể biết một từ có ở trong một chuỗi không.

Tôi đã tìm thấy một số thông tin về việc xác định nếu từ có trong chuỗi - sử dụng

if 'seek' in 'those who seek shall find':
    print['Success!']
7, nhưng có cách nào để thực hiện câu lệnh
if 'seek' in 'those who seek shall find':
    print['Success!']
8. Tôi muốn có một cái gì đó như sau:

if string.find[word]:
    print["success"]

mkrieger1

15.8k4 Huy hiệu vàng46 Huy hiệu bạc57 Huy hiệu Đồng4 gold badges46 silver badges57 bronze badges

hỏi ngày 16 tháng 3 năm 2011 lúc 1:10Mar 16, 2011 at 1:10

1

Co chuyện gi sai vơi:

if word in mystring: 
   print['success']

Martin Thoma

113K148 Huy hiệu vàng572 Huy hiệu bạc876 Huy hiệu đồng148 gold badges572 silver badges876 bronze badges

Đã trả lời ngày 16 tháng 3 năm 2011 lúc 1:13Mar 16, 2011 at 1:13

FabriziomfabriziomfabrizioM

44,9K15 Huy hiệu vàng97 Huy hiệu bạc115 Huy hiệu đồng15 gold badges97 silver badges115 bronze badges

13

if 'seek' in 'those who seek shall find':
    print['Success!']

Nhưng hãy nhớ rằng điều này phù hợp với một chuỗi các ký tự, không nhất thiết là toàn bộ từ - ví dụ,

if 'seek' in 'those who seek shall find':
    print['Success!']
9 là đúng. Nếu bạn chỉ muốn khớp với toàn bộ từ, bạn nên sử dụng các biểu thức thông thường:

import re

def findWholeWord[w]:
    return re.compile[r'\b[{0}]\b'.format[w], flags=re.IGNORECASE].search

findWholeWord['seek']['those who seek shall find']    # -> 
findWholeWord['word']['swordsmith']                   # -> None

Đã trả lời ngày 16 tháng 3 năm 2011 lúc 1:52Mar 16, 2011 at 1:52

Hugh Bothwellhugh BothwellHugh Bothwell

53,8K7 Huy hiệu vàng81 Huy hiệu bạc98 Huy hiệu Đồng7 gold badges81 silver badges98 bronze badges

6

Nếu bạn muốn tìm hiểu xem toàn bộ một từ có nằm trong danh sách các từ được phân tách không gian hay không, chỉ cần sử dụng:

def contains_word[s, w]:
    return [' ' + w + ' '] in [' ' + s + ' ']

contains_word['the quick brown fox', 'brown']  # True
contains_word['the quick brown fox', 'row']    # False

Phương pháp thanh lịch này cũng là nhanh nhất. So với cách tiếp cận của Hugh Bothwell và Dasong:

>python -m timeit -s "def contains_word[s, w]: return [' ' + w + ' '] in [' ' + s + ' ']" "contains_word['the quick brown fox', 'brown']"
1000000 loops, best of 3: 0.351 usec per loop

>python -m timeit -s "import re" -s "def contains_word[s, w]: return re.compile[r'\b[{0}]\b'.format[w], flags=re.IGNORECASE].search[s]" "contains_word['the quick brown fox', 'brown']"
100000 loops, best of 3: 2.38 usec per loop

>python -m timeit -s "def contains_word[s, w]: return s.startswith[w + ' '] or s.endswith[' ' + w] or s.find[' ' + w + ' '] != -1" "contains_word['the quick brown fox', 'brown']"
1000000 loops, best of 3: 1.13 usec per loop

Chỉnh sửa: Một biến thể nhỏ về ý tưởng này cho Python 3.6+, nhanh không kém: A slight variant on this idea for Python 3.6+, equally fast:

def contains_word[s, w]:
    return f' {w} ' in f' {s} '

Đã trả lời ngày 11 tháng 4 năm 2016 lúc 20:32Apr 11, 2016 at 20:32

user200783user200783user200783

13.3k11 Huy hiệu vàng63 Huy hiệu bạc125 Huy hiệu Đồng11 gold badges63 silver badges125 bronze badges

6

Tìm trả về một số nguyên đại diện cho chỉ số nơi tìm thấy mục tìm kiếm. Nếu nó không được tìm thấy, nó sẽ trả về -1.

haystack = 'asdf'

haystack.find['a'] # result: 0
haystack.find['s'] # result: 1
haystack.find['g'] # result: -1

if haystack.find[needle] >= 0:
  print['Needle found.']
else:
  print['Needle not found.']

Martin Thoma

113K148 Huy hiệu vàng572 Huy hiệu bạc876 Huy hiệu đồng148 gold badges572 silver badges876 bronze badges

Đã trả lời ngày 16 tháng 3 năm 2011 lúc 1:13Mar 16, 2011 at 1:13

FabriziomfabriziomMatt Howell

44,9K15 Huy hiệu vàng97 Huy hiệu bạc115 Huy hiệu đồng7 gold badges47 silver badges56 bronze badges

0

Nhưng hãy nhớ rằng điều này phù hợp với một chuỗi các ký tự, không nhất thiết là toàn bộ từ - ví dụ,

if 'seek' in 'those who seek shall find':
    print['Success!']
9 là đúng. Nếu bạn chỉ muốn khớp với toàn bộ từ, bạn nên sử dụng các biểu thức thông thường:

if word in string.split[]:
    print["success"]

Martin Thoma

113K148 Huy hiệu vàng572 Huy hiệu bạc876 Huy hiệu đồng148 gold badges572 silver badges876 bronze badges

Đã trả lời ngày 16 tháng 3 năm 2011 lúc 1:13Dec 1, 2016 at 18:26

FabriziomfabriziomCorvax

44,9K15 Huy hiệu vàng97 Huy hiệu bạc115 Huy hiệu đồng7 silver badges12 bronze badges

3

Nhưng hãy nhớ rằng điều này phù hợp với một chuỗi các ký tự, không nhất thiết là toàn bộ từ - ví dụ,

if 'seek' in 'those who seek shall find':
    print['Success!']
9 là đúng. Nếu bạn chỉ muốn khớp với toàn bộ từ, bạn nên sử dụng các biểu thức thông thường:

Đã trả lời ngày 16 tháng 3 năm 2011 lúc 1:52

def find_words[text, search]:
    """Find exact words"""
    dText   = text.split[]
    dSearch = search.split[]

    found_word = 0

    for text_word in dText:
        for search_word in dSearch:
            if search_word == text_word:
                found_word += 1

    if found_word == len[dSearch]:
        return lenSearch
    else:
        return False

usage:

if word in mystring: 
   print['success']
0

Hugh Bothwellhugh BothwellJun 22, 2012 at 22:51

53,8K7 Huy hiệu vàng81 Huy hiệu bạc98 Huy hiệu ĐồngGuray Celik

Nếu bạn muốn tìm hiểu xem toàn bộ một từ có nằm trong danh sách các từ được phân tách không gian hay không, chỉ cần sử dụng:1 gold badge14 silver badges13 bronze badges

0

Phương pháp thanh lịch này cũng là nhanh nhất. So với cách tiếp cận của Hugh Bothwell và Dasong:

if word in mystring: 
   print['success']
1

Chỉnh sửa: Một biến thể nhỏ về ý tưởng này cho Python 3.6+, nhanh không kém:

Đã trả lời ngày 11 tháng 4 năm 2016 lúc 20:32

13.3k11 Huy hiệu vàng63 Huy hiệu bạc125 Huy hiệu Đồng9 gold badges57 silver badges81 bronze badges

Tìm trả về một số nguyên đại diện cho chỉ số nơi tìm thấy mục tìm kiếm. Nếu nó không được tìm thấy, nó sẽ trả về -1.Jun 15, 2012 at 7:23

Matt Howellmatt HowelldaSong

15.4K7 Huy hiệu vàng47 Huy hiệu bạc56 Huy hiệu Đồng1 gold badge5 silver badges9 bronze badges

1

Bạn có thể chia chuỗi thành các từ và kiểm tra danh sách kết quả.

Đã trả lời ngày 1 tháng 12 năm 2016 lúc 18:26split[separator, num] method for that. It returns a list of all the words in the string, using separator as the separator. If separator is unspecified it splits on all whitespace [optionally you can limit the number of splits to num].

if word in mystring: 
   print['success']
2

Corvaxcorvax

if word in mystring: 
   print['success']
3

7547 Huy hiệu bạc12 Huy hiệu đồngseparator argument like this:

if word in mystring: 
   print['success']
4

Martin Thoma

113K148 Huy hiệu vàng572 Huy hiệu bạc876 Huy hiệu đồng148 gold badges572 silver badges876 bronze badges

Đã trả lời ngày 16 tháng 3 năm 2011 lúc 1:13Dec 18, 2017 at 11:44

Fabriziomfabriziomtstempko

44,9K15 Huy hiệu vàng97 Huy hiệu bạc115 Huy hiệu đồng1 gold badge14 silver badges16 bronze badges

2

Nhưng hãy nhớ rằng điều này phù hợp với một chuỗi các ký tự, không nhất thiết là toàn bộ từ - ví dụ,

if 'seek' in 'those who seek shall find':
    print['Success!']
9 là đúng. Nếu bạn chỉ muốn khớp với toàn bộ từ, bạn nên sử dụng các biểu thức thông thường:

if word in mystring: 
   print['success']
5

Đã trả lời ngày 16 tháng 3 năm 2011 lúc 1:52

Hugh Bothwellhugh BothwellAug 9, 2017 at 10:11

53,8K7 Huy hiệu vàng81 Huy hiệu bạc98 Huy hiệu ĐồngMartin Thoma

113K148 Huy hiệu vàng572 Huy hiệu bạc876 Huy hiệu đồng148 gold badges572 silver badges876 bronze badges

Đã trả lời ngày 16 tháng 3 năm 2011 lúc 1:13

if word in mystring: 
   print['success']
6

Martin Thoma

113K148 Huy hiệu vàng572 Huy hiệu bạc876 Huy hiệu đồng148 gold badges572 silver badges876 bronze badges

Đã trả lời ngày 16 tháng 3 năm 2011 lúc 1:13Nov 2, 2016 at 8:39

FabriziomfabriziomRameez

44,9K15 Huy hiệu vàng97 Huy hiệu bạc115 Huy hiệu đồng5 silver badges11 bronze badges

Nhưng hãy nhớ rằng điều này phù hợp với một chuỗi các ký tự, không nhất thiết là toàn bộ từ - ví dụ,

if 'seek' in 'those who seek shall find':
    print['Success!']
9 là đúng. Nếu bạn chỉ muốn khớp với toàn bộ từ, bạn nên sử dụng các biểu thức thông thường:

if word in mystring: 
   print['success']
7

Đã trả lời ngày 16 tháng 3 năm 2011 lúc 1:52

if word in mystring: 
   print['success']
8

Hugh Bothwellhugh Bothwell

if word in mystring: 
   print['success']
9

Sample:

if 'seek' in 'those who seek shall find':
    print['Success!']
0

53,8K7 Huy hiệu vàng81 Huy hiệu bạc98 Huy hiệu Đồng

Nếu bạn muốn tìm hiểu xem toàn bộ một từ có nằm trong danh sách các từ được phân tách không gian hay không, chỉ cần sử dụng:Dec 26, 2020 at 5:18

Phương pháp thanh lịch này cũng là nhanh nhất. So với cách tiếp cận của Hugh Bothwell và Dasong:marcio

Chỉnh sửa: Một biến thể nhỏ về ý tưởng này cho Python 3.6+, nhanh không kém:5 silver badges16 bronze badges

Đã trả lời ngày 11 tháng 4 năm 2016 lúc 20:32

if 'seek' in 'those who seek shall find':
    print['Success!']
1

13.3k11 Huy hiệu vàng63 Huy hiệu bạc125 Huy hiệu Đồng

if 'seek' in 'those who seek shall find':
    print['Success!']
2

Martin Thoma

113K148 Huy hiệu vàng572 Huy hiệu bạc876 Huy hiệu đồng148 gold badges572 silver badges876 bronze badges

Tìm trả về một số nguyên đại diện cho chỉ số nơi tìm thấy mục tìm kiếm. Nếu nó không được tìm thấy, nó sẽ trả về -1.Feb 26, 2015 at 14:23

Matt Howellmatt HowellPyGuy

15.4K7 Huy hiệu vàng47 Huy hiệu bạc56 Huy hiệu Đồng3 bronze badges

1

Bạn có thể chia chuỗi thành các từ và kiểm tra danh sách kết quả.

Đã trả lời ngày 1 tháng 12 năm 2016 lúc 18:26

if 'seek' in 'those who seek shall find':
    print['Success!']
3

Martin Thoma

113K148 Huy hiệu vàng572 Huy hiệu bạc876 Huy hiệu đồng148 gold badges572 silver badges876 bronze badges

Đã trả lời ngày 25 tháng 8 năm 2021 lúc 13:25Aug 25, 2021 at 13:25

Milos Cuculovicmilos CuculovicMilos Cuculovic

Phim huy hiệu vàng 18,9k5050 gold badges155 silver badges264 bronze badges

Một trong những giải pháp là đặt một khoảng trống ở đầu và cuối của từ thử nghiệm. Điều này thất bại nếu từ ở đầu hoặc kết thúc câu hoặc nằm cạnh bất kỳ dấu câu nào. Giải pháp của tôi là viết một hàm thay thế bất kỳ dấu câu nào trong chuỗi kiểm tra bằng khoảng trắng và thêm một khoảng trống vào đầu và cuối hoặc chuỗi kiểm tra và từ kiểm tra, sau đó trả về số lần xuất hiện. Đây là một giải pháp đơn giản loại bỏ sự cần thiết cho bất kỳ biểu thức regex phức tạp nào.

if 'seek' in 'those who seek shall find':
    print['Success!']
4

Để đếm số lần xuất hiện của một từ trong một chuỗi:

if 'seek' in 'those who seek shall find':
    print['Success!']
5

trả về 1

if 'seek' in 'those who seek shall find':
    print['Success!']
6

trả về 1

Sử dụng hàm trong 'if' để kiểm tra xem từ có tồn tại trong một chuỗi không

Đã trả lời ngày 18 tháng 3 lúc 9:37Mar 18 at 9:37

IstuartistuartiStuart

3362 Huy hiệu bạc6 Huy hiệu Đồng2 silver badges6 bronze badges

Làm thế nào để bạn kiểm tra xem một từ cụ thể có trong một chuỗi không?

Bạn có thể sử dụng hàm Php Strpos [] để kiểm tra xem một chuỗi có chứa một từ cụ thể hay không.Hàm strpos [] trả về vị trí của lần xuất hiện đầu tiên của chuỗi con trong một chuỗi.Nếu chất nền không được tìm thấy, nó sẽ trả về sai.Cũng lưu ý rằng các vị trí chuỗi bắt đầu ở 0, chứ không phải 1.use the PHP strpos[] function to check whether a string contains a specific word or not. The strpos[] function returns the position of the first occurrence of a substring in a string. If the substring is not found it returns false . Also note that string positions start at 0, and not 1.

Làm thế nào để bạn kiểm tra xem một từ nằm trong một gấu trúc chuỗi?

Chức năng str.contains [] được sử dụng để kiểm tra nếu mẫu hoặc regex được chứa trong một chuỗi của một chuỗi hoặc chỉ mục.Hàm trả về chuỗi hoặc chỉ mục Boolean dựa trên việc một mẫu nhất định hay regex được chứa trong một chuỗi của một chuỗi hoặc chỉ mục. contains[] function is used to test if pattern or regex is contained within a string of a Series or Index. The function returns boolean Series or Index based on whether a given pattern or regex is contained within a string of a Series or Index.

Chủ Đề