Tôi đã đánh giá điểm này khác nhau theo Python 3.7.0 [Ipython].
TLDR
- nhanh nhất [khi biểu tượng phân chia
1 được biết đến]: Regex được biên dịch sẵn.String length: 16 regex [compiled]: 156 ns ± 4.41 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each] partition: 19.3 µs ± 430 ns per loop [mean ± std. dev. of 7 runs, 100000 loops each] index: 26.1 µs ± 341 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each] split [limited]: 26.8 µs ± 1.26 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each] split: 26.3 µs ± 835 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each] regex: 128 µs ± 4.02 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each] String length: 256 regex [compiled]: 167 ns ± 2.7 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each] partition: 20.9 µs ± 694 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each] index: 28.6 µs ± 2.73 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each] split [limited]: 27.4 µs ± 979 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each] split: 31.5 µs ± 4.86 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each] regex: 148 µs ± 7.05 µs per loop [mean ± std. dev. of 7 runs, 1000 loops each] String length: 65536 regex [compiled]: 173 ns ± 3.95 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each] partition: 20.9 µs ± 613 ns per loop [mean ± std. dev. of 7 runs, 100000 loops each] index: 27.7 µs ± 515 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each] split [limited]: 27.2 µs ± 796 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each] split: 26.5 µs ± 377 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each] regex: 128 µs ± 1.5 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each] String length: 4294967296 regex [compiled]: 165 ns ± 1.2 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each] partition: 19.9 µs ± 144 ns per loop [mean ± std. dev. of 7 runs, 100000 loops each] index: 27.7 µs ± 571 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each] split [limited]: 26.1 µs ± 472 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each] split: 28.1 µs ± 1.69 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each] regex: 137 µs ± 6.53 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
- nhanh nhất [mặt khác]:
2.String length: 16 regex [compiled]: 156 ns ± 4.41 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each] partition: 19.3 µs ± 430 ns per loop [mean ± std. dev. of 7 runs, 100000 loops each] index: 26.1 µs ± 341 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each] split [limited]: 26.8 µs ± 1.26 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each] split: 26.3 µs ± 835 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each] regex: 128 µs ± 4.02 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each] String length: 256 regex [compiled]: 167 ns ± 2.7 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each] partition: 20.9 µs ± 694 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each] index: 28.6 µs ± 2.73 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each] split [limited]: 27.4 µs ± 979 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each] split: 31.5 µs ± 4.86 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each] regex: 148 µs ± 7.05 µs per loop [mean ± std. dev. of 7 runs, 1000 loops each] String length: 65536 regex [compiled]: 173 ns ± 3.95 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each] partition: 20.9 µs ± 613 ns per loop [mean ± std. dev. of 7 runs, 100000 loops each] index: 27.7 µs ± 515 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each] split [limited]: 27.2 µs ± 796 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each] split: 26.5 µs ± 377 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each] regex: 128 µs ± 1.5 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each] String length: 4294967296 regex [compiled]: 165 ns ± 1.2 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each] partition: 19.9 µs ± 144 ns per loop [mean ± std. dev. of 7 runs, 100000 loops each] index: 27.7 µs ± 571 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each] split [limited]: 26.1 µs ± 472 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each] split: 28.1 µs ± 1.69 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each] regex: 137 µs ± 6.53 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
- An toàn [tức là, khi
1 có thể không có trongString length: 16 regex [compiled]: 156 ns ± 4.41 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each] partition: 19.3 µs ± 430 ns per loop [mean ± std. dev. of 7 runs, 100000 loops each] index: 26.1 µs ± 341 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each] split [limited]: 26.8 µs ± 1.26 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each] split: 26.3 µs ± 835 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each] regex: 128 µs ± 4.02 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each] String length: 256 regex [compiled]: 167 ns ± 2.7 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each] partition: 20.9 µs ± 694 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each] index: 28.6 µs ± 2.73 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each] split [limited]: 27.4 µs ± 979 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each] split: 31.5 µs ± 4.86 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each] regex: 148 µs ± 7.05 µs per loop [mean ± std. dev. of 7 runs, 1000 loops each] String length: 65536 regex [compiled]: 173 ns ± 3.95 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each] partition: 20.9 µs ± 613 ns per loop [mean ± std. dev. of 7 runs, 100000 loops each] index: 27.7 µs ± 515 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each] split [limited]: 27.2 µs ± 796 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each] split: 26.5 µs ± 377 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each] regex: 128 µs ± 1.5 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each] String length: 4294967296 regex [compiled]: 165 ns ± 1.2 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each] partition: 19.9 µs ± 144 ns per loop [mean ± std. dev. of 7 runs, 100000 loops each] index: 27.7 µs ± 571 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each] split [limited]: 26.1 µs ± 472 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each] split: 28.1 µs ± 1.69 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each] regex: 137 µs ± 6.53 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
4]: phân vùng, chia.String length: 16 regex [compiled]: 156 ns ± 4.41 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each] partition: 19.3 µs ± 430 ns per loop [mean ± std. dev. of 7 runs, 100000 loops each] index: 26.1 µs ± 341 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each] split [limited]: 26.8 µs ± 1.26 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each] split: 26.3 µs ± 835 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each] regex: 128 µs ± 4.02 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each] String length: 256 regex [compiled]: 167 ns ± 2.7 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each] partition: 20.9 µs ± 694 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each] index: 28.6 µs ± 2.73 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each] split [limited]: 27.4 µs ± 979 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each] split: 31.5 µs ± 4.86 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each] regex: 148 µs ± 7.05 µs per loop [mean ± std. dev. of 7 runs, 1000 loops each] String length: 65536 regex [compiled]: 173 ns ± 3.95 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each] partition: 20.9 µs ± 613 ns per loop [mean ± std. dev. of 7 runs, 100000 loops each] index: 27.7 µs ± 515 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each] split [limited]: 27.2 µs ± 796 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each] split: 26.5 µs ± 377 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each] regex: 128 µs ± 1.5 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each] String length: 4294967296 regex [compiled]: 165 ns ± 1.2 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each] partition: 19.9 µs ± 144 ns per loop [mean ± std. dev. of 7 runs, 100000 loops each] index: 27.7 µs ± 571 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each] split [limited]: 26.1 µs ± 472 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each] split: 28.1 µs ± 1.69 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each] regex: 137 µs ± 6.53 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
- Không an toàn: Index, Regex.
Mã số
import string, random, re
SYMBOLS = string.ascii_uppercase + string.digits
SIZE = 100
def create_test_set[string_length]:
for _ in range[SIZE]:
random_string = ''.join[random.choices[SYMBOLS, k=string_length]]
yield [random.choice[random_string], random_string]
for string_length in [2**4, 2**8, 2**16, 2**32]:
print["\nString length:", string_length]
print[" regex [compiled]:", end=" "]
test_set_for_regex = [[re.compile["[.*?]" + c].match, s] for [c, s] in test_set]
%timeit [re_match[s].group[] for [re_match, s] in test_set_for_regex]
test_set = list[create_test_set[16]]
print[" partition: ", end=" "]
%timeit [s.partition[c][0] for [c, s] in test_set]
print[" index: ", end=" "]
%timeit [s[:s.index[c]] for [c, s] in test_set]
print[" split [limited]: ", end=" "]
%timeit [s.split[c, 1][0] for [c, s] in test_set]
print[" split: ", end=" "]
%timeit [s.split[c][0] for [c, s] in test_set]
print[" regex: ", end=" "]
%timeit [re.match["[.*?]" + c, s].group[] for [c, s] in test_set]
Kết quả
String length: 16
regex [compiled]: 156 ns ± 4.41 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each]
partition: 19.3 µs ± 430 ns per loop [mean ± std. dev. of 7 runs, 100000 loops each]
index: 26.1 µs ± 341 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split [limited]: 26.8 µs ± 1.26 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split: 26.3 µs ± 835 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
regex: 128 µs ± 4.02 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
String length: 256
regex [compiled]: 167 ns ± 2.7 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each]
partition: 20.9 µs ± 694 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
index: 28.6 µs ± 2.73 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split [limited]: 27.4 µs ± 979 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split: 31.5 µs ± 4.86 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
regex: 148 µs ± 7.05 µs per loop [mean ± std. dev. of 7 runs, 1000 loops each]
String length: 65536
regex [compiled]: 173 ns ± 3.95 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each]
partition: 20.9 µs ± 613 ns per loop [mean ± std. dev. of 7 runs, 100000 loops each]
index: 27.7 µs ± 515 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split [limited]: 27.2 µs ± 796 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split: 26.5 µs ± 377 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
regex: 128 µs ± 1.5 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
String length: 4294967296
regex [compiled]: 165 ns ± 1.2 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each]
partition: 19.9 µs ± 144 ns per loop [mean ± std. dev. of 7 runs, 100000 loops each]
index: 27.7 µs ± 571 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split [limited]: 26.1 µs ± 472 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split: 28.1 µs ± 1.69 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
regex: 137 µs ± 6.53 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
Nhận một phần của chuỗi trước một ký tự cụ thể trong Python #
Để có được phần của chuỗi trước một ký tự cụ thể:
- Sử dụng phương thức
8 để lấy chỉ mục của ký tự.Copied!
string = 'bobby-hadz-com' # ✅ Get part of string before FIRST occurrence of character before_character = string.split['-', 1][0] print[before_character] # 👉️ 'bobby' # ----------------------------------------------------- # ✅ Get part of string before LAST occurrence of character before_character = string.rsplit['-', 1][0] print[before_character] # 👉️ bobby-hadz
- Sử dụng cắt chuỗi để có được mọi thứ trước chỉ mục.
- Tùy chọn, sử dụng toán tử bổ sung [+] để thêm ký tự.
Copied!
string = 'bobby-hadz-com' # ✅ Get part of string before FIRST occurrence of character before_character = string.split['-', 1][0] print[before_character] # 👉️ 'bobby' # ----------------------------------------------------- # ✅ Get part of string before LAST occurrence of character before_character = string.rsplit['-', 1][0] print[before_character] # 👉️ bobby-hadz
Phương thức str.index trả về chỉ mục của lần xuất hiện đầu tiên của chuỗi con được cung cấp trong chuỗi.
Chúng tôi đã sử dụng cắt chuỗi để có được một phần của chuỗi trước ký tự đã cho.
Cú pháp để cắt chuỗi là
0.Copied!
string = 'bobby-hadz-com' # 👇️ ['bobby', 'hadz-com'] print[string.split['-', 1]] before_character = string.split['-', 1][0] print[before_character] # 👉️ 'bobby'
Slice 6 bắt đầu tại INDEX 6 và đi lên, nhưng không bao gồm chỉ mục được chỉ định. | Bạn có thể sử dụng toán tử bổ sung [+] nếu bạn cần thêm ký tự vào chuỗi. |
Phương thức 8 tăng 9 nếu không tìm thấy chuỗi con trong chuỗi. | Bạn có thể sử dụng câu lệnh 0 để xử lý kịch bản trong đó không tìm thấy chuỗi con trong chuỗi. |
Chất nền được chỉ định không chứa trong chuỗi, do đó
9 được nâng lên và sau đó được xử lý bởi khốiCopied!
string = 'bobby-hadz-com' # 👇️ ['bobby', 'hadz-com'] print[string.split['-', 1]] before_character = string.split['-', 1][0] print[before_character] # 👉️ 'bobby'
2.Copied!
string = 'bobby-hadz-com' character = '-' before_character = string.split[character, 1][0] + character print[before_character] # 👉️ 'bobby-'
Chúng tôi đặt đối số Copied!
8 thành String length: 16
regex [compiled]: 156 ns ± 4.41 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each]
partition: 19.3 µs ± 430 ns per loop [mean ± std. dev. of 7 runs, 100000 loops each]
index: 26.1 µs ± 341 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split [limited]: 26.8 µs ± 1.26 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split: 26.3 µs ± 835 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
regex: 128 µs ± 4.02 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
String length: 256
regex [compiled]: 167 ns ± 2.7 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each]
partition: 20.9 µs ± 694 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
index: 28.6 µs ± 2.73 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split [limited]: 27.4 µs ± 979 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split: 31.5 µs ± 4.86 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
regex: 148 µs ± 7.05 µs per loop [mean ± std. dev. of 7 runs, 1000 loops each]
String length: 65536
regex [compiled]: 173 ns ± 3.95 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each]
partition: 20.9 µs ± 613 ns per loop [mean ± std. dev. of 7 runs, 100000 loops each]
index: 27.7 µs ± 515 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split [limited]: 27.2 µs ± 796 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split: 26.5 µs ± 377 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
regex: 128 µs ± 1.5 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
String length: 4294967296
regex [compiled]: 165 ns ± 1.2 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each]
partition: 19.9 µs ± 144 ns per loop [mean ± std. dev. of 7 runs, 100000 loops each]
index: 27.7 µs ± 571 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split [limited]: 26.1 µs ± 472 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split: 28.1 µs ± 1.69 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
regex: 137 µs ± 6.53 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
0 vì chúng tôi chỉ muốn chia chuỗi trên lần xuất hiện đầu tiên của ký tự đã cho.string = 'bobby-hadz-com'
# ✅ Get part of string before FIRST occurrence of character
before_character = string.split['-', 1][0]
print[before_character] # 👉️ 'bobby'
# -----------------------------------------------------
# ✅ Get part of string before LAST occurrence of character
before_character = string.rsplit['-', 1][0]
print[before_character] # 👉️ bobby-hadz
Copied!
string = 'bobby-hadz-com' # 👇️ ['bobby', 'hadz-com'] print[string.split['-', 1]] before_character = string.split['-', 1][0] print[before_character] # 👉️ 'bobby'
Nếu bạn cần đưa ký tự vào chuỗi cuối cùng, hãy sử dụng toán tử bổ sung.
Copied!
string = 'bobby-hadz-com' character = '-' before_character = string.split[character, 1][0] + character print[before_character] # 👉️ 'bobby-'
Cách tiếp cận này cũng có thể được sử dụng để có được một phần của chuỗi trước một chuỗi con cụ thể, nó không phải là một ký tự duy nhất.
Nếu bạn cần có được một phần của chuỗi trước lần xuất hiện cuối cùng của ký tự, hãy sử dụng phương thức
1.Copied!
string = 'bobby-hadz-com' # ✅ Get part of string before FIRST occurrence of character before_character = string.split['-', 1][0] print[before_character] # 👉️ 'bobby' # ----------------------------------------------------- # ✅ Get part of string before LAST occurrence of character before_character = string.rsplit['-', 1][0] print[before_character] # 👉️ bobby-hadz
Copied!
string = 'bobby-hadz-com' character = '-' before_character = string.rsplit[character, 1][0] print[before_character] # 👉️ bobby-hadz
Ngoại trừ việc chia tách từ bên phải,
2 hoạt động nhưCopied!
string = 'bobby-hadz-com' # ✅ Get part of string before FIRST occurrence of character before_character = string.split['-', 1][0] print[before_character] # 👉️ 'bobby' # ----------------------------------------------------- # ✅ Get part of string before LAST occurrence of character before_character = string.rsplit['-', 1][0] print[before_character] # 👉️ bobby-hadz
3.Copied!
string = 'bobby-hadz-com' # ✅ Get part of string before FIRST occurrence of character before_character = string.split['-', 1][0] print[before_character] # 👉️ 'bobby' # ----------------------------------------------------- # ✅ Get part of string before LAST occurrence of character before_character = string.rsplit['-', 1][0] print[before_character] # 👉️ bobby-hadz
Phương thức Copied! Copied!
1 chia chuỗi từ bên phải và với string = 'bobby-hadz-com'
# ✅ Get part of string before FIRST occurrence of character
before_character = string.split['-', 1][0]
print[before_character] # 👉️ 'bobby'
# -----------------------------------------------------
# ✅ Get part of string before LAST occurrence of character
before_character = string.rsplit['-', 1][0]
print[before_character] # 👉️ bobby-hadz
8 được đặt thành String length: 16
regex [compiled]: 156 ns ± 4.41 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each]
partition: 19.3 µs ± 430 ns per loop [mean ± std. dev. of 7 runs, 100000 loops each]
index: 26.1 µs ± 341 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split [limited]: 26.8 µs ± 1.26 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split: 26.3 µs ± 835 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
regex: 128 µs ± 4.02 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
String length: 256
regex [compiled]: 167 ns ± 2.7 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each]
partition: 20.9 µs ± 694 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
index: 28.6 µs ± 2.73 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split [limited]: 27.4 µs ± 979 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split: 31.5 µs ± 4.86 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
regex: 148 µs ± 7.05 µs per loop [mean ± std. dev. of 7 runs, 1000 loops each]
String length: 65536
regex [compiled]: 173 ns ± 3.95 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each]
partition: 20.9 µs ± 613 ns per loop [mean ± std. dev. of 7 runs, 100000 loops each]
index: 27.7 µs ± 515 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split [limited]: 27.2 µs ± 796 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split: 26.5 µs ± 377 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
regex: 128 µs ± 1.5 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
String length: 4294967296
regex [compiled]: 165 ns ± 1.2 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each]
partition: 19.9 µs ± 144 ns per loop [mean ± std. dev. of 7 runs, 100000 loops each]
index: 27.7 µs ± 571 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split [limited]: 26.1 µs ± 472 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split: 28.1 µs ± 1.69 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
regex: 137 µs ± 6.53 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
0, nó chỉ chia tách một lần.string = 'bobby-hadz-com'
# ✅ Get part of string before FIRST occurrence of character
before_character = string.split['-', 1][0]
print[before_character] # 👉️ 'bobby'
# -----------------------------------------------------
# ✅ Get part of string before LAST occurrence of character
before_character = string.rsplit['-', 1][0]
print[before_character] # 👉️ bobby-hadz
Copied!
string = 'bobby-hadz-com' # 👇️ ['bobby-hadz', 'com'] print[string.rsplit[character, 1]]
Mục danh sách tại Index
String length: 16
regex [compiled]: 156 ns ± 4.41 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each]
partition: 19.3 µs ± 430 ns per loop [mean ± std. dev. of 7 runs, 100000 loops each]
index: 26.1 µs ± 341 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split [limited]: 26.8 µs ± 1.26 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split: 26.3 µs ± 835 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
regex: 128 µs ± 4.02 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
String length: 256
regex [compiled]: 167 ns ± 2.7 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each]
partition: 20.9 µs ± 694 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
index: 28.6 µs ± 2.73 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split [limited]: 27.4 µs ± 979 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split: 31.5 µs ± 4.86 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
regex: 148 µs ± 7.05 µs per loop [mean ± std. dev. of 7 runs, 1000 loops each]
String length: 65536
regex [compiled]: 173 ns ± 3.95 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each]
partition: 20.9 µs ± 613 ns per loop [mean ± std. dev. of 7 runs, 100000 loops each]
index: 27.7 µs ± 515 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split [limited]: 27.2 µs ± 796 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split: 26.5 µs ± 377 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
regex: 128 µs ± 1.5 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
String length: 4294967296
regex [compiled]: 165 ns ± 1.2 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each]
partition: 19.9 µs ± 144 ns per loop [mean ± std. dev. of 7 runs, 100000 loops each]
index: 27.7 µs ± 571 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split [limited]: 26.1 µs ± 472 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split: 28.1 µs ± 1.69 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
regex: 137 µs ± 6.53 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
6 chứa mọi thứ trước khi xuất hiện cuối cùng của ký tự đã cho.Ngoài ra, bạn có thể sử dụng phương pháp
8.Copied!
string = 'bobby-hadz-com' # ✅ Get part of string before FIRST occurrence of character before_character = string.split['-', 1][0] print[before_character] # 👉️ 'bobby' # ----------------------------------------------------- # ✅ Get part of string before LAST occurrence of character before_character = string.rsplit['-', 1][0] print[before_character] # 👉️ bobby-hadz
Nhận một phần của chuỗi trước một ký tự cụ thể bằng cách sử dụng str.index [] #
Để có được phần của chuỗi trước một ký tự cụ thể:
- Sử dụng phương thức
8 để lấy chỉ mục của ký tự.Copied!
string = 'bobby-hadz-com' # ✅ Get part of string before FIRST occurrence of character before_character = string.split['-', 1][0] print[before_character] # 👉️ 'bobby' # ----------------------------------------------------- # ✅ Get part of string before LAST occurrence of character before_character = string.rsplit['-', 1][0] print[before_character] # 👉️ bobby-hadz
- Sử dụng cắt chuỗi để có được mọi thứ trước chỉ mục.
- Tùy chọn, sử dụng toán tử bổ sung [+] để thêm ký tự.
Copied!
string = 'bobby-hadz-com' before_character = string[:string.index['-']] print[before_character] # 👉️ 'bobby'
Phương thức str.index trả về chỉ mục của lần xuất hiện đầu tiên của chuỗi con được cung cấp trong chuỗi.
Copied!
string = 'bobby-hadz-com' print[string.index['-']] # 👉️ 5
Chúng tôi đã sử dụng cắt chuỗi để có được một phần của chuỗi trước ký tự đã cho.
Cú pháp để cắt chuỗi là
0.Copied!
string = 'bobby-hadz-com' # 👇️ ['bobby', 'hadz-com'] print[string.split['-', 1]] before_character = string.split['-', 1][0] print[before_character] # 👉️ 'bobby'
Chỉ số Copied! Copied!
1 bao gồm, trong khi chỉ số string = 'bobby-hadz-com'
# 👇️ ['bobby', 'hadz-com']
print[string.split['-', 1]]
before_character = string.split['-', 1][0]
print[before_character] # 👉️ 'bobby'
2 là độc quyền [lên đến, nhưng không bao gồm].string = 'bobby-hadz-com'
# 👇️ ['bobby', 'hadz-com']
print[string.split['-', 1]]
before_character = string.split['-', 1][0]
print[before_character] # 👉️ 'bobby'
Các chỉ mục Python là dựa trên 0, do đó, ký tự đầu tiên trong một chuỗi có chỉ số
String length: 16
regex [compiled]: 156 ns ± 4.41 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each]
partition: 19.3 µs ± 430 ns per loop [mean ± std. dev. of 7 runs, 100000 loops each]
index: 26.1 µs ± 341 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split [limited]: 26.8 µs ± 1.26 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split: 26.3 µs ± 835 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
regex: 128 µs ± 4.02 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
String length: 256
regex [compiled]: 167 ns ± 2.7 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each]
partition: 20.9 µs ± 694 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
index: 28.6 µs ± 2.73 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split [limited]: 27.4 µs ± 979 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split: 31.5 µs ± 4.86 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
regex: 148 µs ± 7.05 µs per loop [mean ± std. dev. of 7 runs, 1000 loops each]
String length: 65536
regex [compiled]: 173 ns ± 3.95 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each]
partition: 20.9 µs ± 613 ns per loop [mean ± std. dev. of 7 runs, 100000 loops each]
index: 27.7 µs ± 515 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split [limited]: 27.2 µs ± 796 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split: 26.5 µs ± 377 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
regex: 128 µs ± 1.5 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
String length: 4294967296
regex [compiled]: 165 ns ± 1.2 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each]
partition: 19.9 µs ± 144 ns per loop [mean ± std. dev. of 7 runs, 100000 loops each]
index: 27.7 µs ± 571 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split [limited]: 26.1 µs ± 472 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split: 28.1 µs ± 1.69 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
regex: 137 µs ± 6.53 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
6 và ký tự cuối cùng có chỉ số là 4 hoặcCopied!
string = 'bobby-hadz-com' # 👇️ ['bobby', 'hadz-com'] print[string.split['-', 1]] before_character = string.split['-', 1][0] print[before_character] # 👉️ 'bobby'
5.Copied!
string = 'bobby-hadz-com' # 👇️ ['bobby', 'hadz-com'] print[string.split['-', 1]] before_character = string.split['-', 1][0] print[before_character] # 👉️ 'bobby'
Slice
6 bắt đầu tại INDEXCopied!
string = 'bobby-hadz-com' # 👇️ ['bobby', 'hadz-com'] print[string.split['-', 1]] before_character = string.split['-', 1][0] print[before_character] # 👉️ 'bobby'
String length: 16
regex [compiled]: 156 ns ± 4.41 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each]
partition: 19.3 µs ± 430 ns per loop [mean ± std. dev. of 7 runs, 100000 loops each]
index: 26.1 µs ± 341 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split [limited]: 26.8 µs ± 1.26 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split: 26.3 µs ± 835 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
regex: 128 µs ± 4.02 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
String length: 256
regex [compiled]: 167 ns ± 2.7 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each]
partition: 20.9 µs ± 694 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
index: 28.6 µs ± 2.73 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split [limited]: 27.4 µs ± 979 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split: 31.5 µs ± 4.86 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
regex: 148 µs ± 7.05 µs per loop [mean ± std. dev. of 7 runs, 1000 loops each]
String length: 65536
regex [compiled]: 173 ns ± 3.95 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each]
partition: 20.9 µs ± 613 ns per loop [mean ± std. dev. of 7 runs, 100000 loops each]
index: 27.7 µs ± 515 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split [limited]: 27.2 µs ± 796 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split: 26.5 µs ± 377 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
regex: 128 µs ± 1.5 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
String length: 4294967296
regex [compiled]: 165 ns ± 1.2 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each]
partition: 19.9 µs ± 144 ns per loop [mean ± std. dev. of 7 runs, 100000 loops each]
index: 27.7 µs ± 571 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split [limited]: 26.1 µs ± 472 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split: 28.1 µs ± 1.69 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
regex: 137 µs ± 6.53 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
6 và đi lên, nhưng không bao gồm chỉ mục được chỉ định.Bạn có thể sử dụng toán tử bổ sung [+] nếu bạn cần thêm ký tự vào chuỗi.
Copied!
string = 'bobby-hadz-com' character = '-' before_character = string[:string.index[character]] + character print[before_character] # 👉️ 'bobby-'
Phương thức
8 tăngCopied!
string = 'bobby-hadz-com' # ✅ Get part of string before FIRST occurrence of character before_character = string.split['-', 1][0] print[before_character] # 👉️ 'bobby' # ----------------------------------------------------- # ✅ Get part of string before LAST occurrence of character before_character = string.rsplit['-', 1][0] print[before_character] # 👉️ bobby-hadz
9 nếu không tìm thấy chuỗi con trong chuỗi.Copied!
string = 'bobby-hadz-com' # 👇️ ['bobby', 'hadz-com'] print[string.split['-', 1]] before_character = string.split['-', 1][0] print[before_character] # 👉️ 'bobby'
Bạn có thể sử dụng câu lệnh
0 để xử lý kịch bản trong đó không tìm thấy chuỗi con trong chuỗi.Copied!
string = 'bobby-hadz-com' character = '-' before_character = string.split[character, 1][0] + character print[before_character] # 👉️ 'bobby-'
String length: 16
regex [compiled]: 156 ns ± 4.41 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each]
partition: 19.3 µs ± 430 ns per loop [mean ± std. dev. of 7 runs, 100000 loops each]
index: 26.1 µs ± 341 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split [limited]: 26.8 µs ± 1.26 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split: 26.3 µs ± 835 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
regex: 128 µs ± 4.02 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
String length: 256
regex [compiled]: 167 ns ± 2.7 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each]
partition: 20.9 µs ± 694 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
index: 28.6 µs ± 2.73 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split [limited]: 27.4 µs ± 979 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split: 31.5 µs ± 4.86 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
regex: 148 µs ± 7.05 µs per loop [mean ± std. dev. of 7 runs, 1000 loops each]
String length: 65536
regex [compiled]: 173 ns ± 3.95 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each]
partition: 20.9 µs ± 613 ns per loop [mean ± std. dev. of 7 runs, 100000 loops each]
index: 27.7 µs ± 515 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split [limited]: 27.2 µs ± 796 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split: 26.5 µs ± 377 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
regex: 128 µs ± 1.5 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
String length: 4294967296
regex [compiled]: 165 ns ± 1.2 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each]
partition: 19.9 µs ± 144 ns per loop [mean ± std. dev. of 7 runs, 100000 loops each]
index: 27.7 µs ± 571 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split [limited]: 26.1 µs ± 472 ns per loop [mean ± std. dev. of 7 runs, 10000 loops each]
split: 28.1 µs ± 1.69 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
regex: 137 µs ± 6.53 µs per loop [mean ± std. dev. of 7 runs, 10000 loops each]
0Chất nền được chỉ định không chứa trong chuỗi, do đó
9 được nâng lên và sau đó được xử lý bởi khốiCopied!
string = 'bobby-hadz-com' # 👇️ ['bobby', 'hadz-com'] print[string.split['-', 1]] before_character = string.split['-', 1][0] print[before_character] # 👉️ 'bobby'
2.Copied!
string = 'bobby-hadz-com' character = '-' before_character = string.split[character, 1][0] + character print[before_character] # 👉️ 'bobby-'
Cách tiếp cận mà bạn chọn là một vấn đề sở thích cá nhân. Tôi sẽ sử dụng phương pháp
8 vì tôi thấy nó trực tiếp và trực quan hơn.Copied!
string = 'bobby-hadz-com' # ✅ Get part of string before FIRST occurrence of character before_character = string.split['-', 1][0] print[before_character] # 👉️ 'bobby' # ----------------------------------------------------- # ✅ Get part of string before LAST occurrence of character before_character = string.rsplit['-', 1][0] print[before_character] # 👉️ bobby-hadz