In [1]: words = [str(i) for i in range(10000)]
In [2]: %timeit replaced = [w.replace('1', '<1>') for w in words]
100 loops, best of 3: 2.98 ms per loop
In [3]: %timeit replaced = map(lambda x: str.replace(x, '1', '<1>'), words)
100 loops, best of 3: 5.09 ms per loop
In [4]: %timeit replaced = map(lambda x: x.replace('1', '<1>'), words)
100 loops, best of 3: 4.39 ms per loop
In [5]: import re
In [6]: r = re.compile('1')
In [7]: %timeit replaced = [r.sub('<1>', w) for w in words]
100 loops, best of 3: 6.15 ms per loop
Như bạn có thể thấy đối với các mẫu đơn giản như vậy, sự hiểu biết danh sách được chấp nhận là nhanh nhất, nhưng hãy nhìn vào những điều sau đây:
In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop
In [9]: r = re.compile('(1|324|567)')
In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
Điều này cho thấy rằng để thay thế phức tạp hơn, một reg-exp được biên dịch sẵn (như trong
In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop
In [9]: r = re.compile('(1|324|567)')
In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
6) có thể nhanh hơn (nhiều). Nó thực sự phụ thuộc vào vấn đề của bạn và phần ngắn nhất của reg-exp.
Trong Python, bạn có thể tạo một danh sách mới từ danh sách các chuỗi bằng cách trích xuất, thay thế hoặc chuyển đổi các yếu tố đáp ứng các điều kiện nhất định với sự hiểu biết danh sách.
Bài viết này giải thích ngắn gọn về sự hiểu biết danh sách và sau đó mô tả những điều sau đây với mã mẫu.
Trích xuất các chuỗi chứa hoặc không chứa một chuỗi cụ thể
Thay thế một chuỗi cụ thể trong danh sách
Trích xuất các chuỗi bắt đầu hoặc không bắt đầu bằng một chuỗi cụ thể
Trích xuất các chuỗi kết thúc hoặc không kết thúc bằng một chuỗi cụ thể
Trích xuất chuỗi bằng chữ hoa hoặc chữ thường
Chuyển đổi chữ hoa và chữ thường
Trích xuất chuỗi bằng chữ cái hoặc số
Nhiều điều kiện
Biểu thức chính quy (Regex)
Bạn có thể sử dụng các biểu thức thông thường (regex) để xử lý linh hoạt hơn.
Re - Hoạt động biểu thức thường xuyên - Tài liệu Python 3.9.7
Vì các đối tượng l_replace = [s.replace('XXX', 'ZZZ') for s in l]
print(l_replace)
# ['oneZZZaaa', 'twoZZZbbb', 'three999aaa', '000111222']
3 được đánh giá là [expression for variable_name in iterable if condition]
5 và l_replace = [s.replace('XXX', 'ZZZ') for s in l]
print(l_replace)
# ['oneZZZaaa', 'twoZZZbbb', 'three999aaa', '000111222']
4 là l_replace = [s.replace('XXX', 'ZZZ') for s in l]
print(l_replace)
# ['oneZZZaaa', 'twoZZZbbb', 'three999aaa', '000111222']
8, nếu bạn chỉ muốn trích xuất các phần tử phù hợp với mẫu regex, bạn nên áp dụng l_replace = [s.replace('XXX', 'ZZZ') for s in l]
print(l_replace)
# ['oneZZZaaa', 'twoZZZbbb', 'three999aaa', '000111222']
2 cho phần In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop
In [9]: r = re.compile('(1|324|567)')
In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
8 của các hiểu biết như trong các ví dụ trước.
1 để thay thế phần phù hợp với mẫu regex. Nếu bạn muốn trích xuất và chỉ thay thế các phần tử phù hợp, hãy thêm
[expressionforvariable_nameiniterableifcondition]
1.
Làm thế nào để bạn thay thế một phần tử trong một mảng python?
[expressionforvariable_nameiniterableifcondition]
Chúng ta có thể thay thế các giá trị bên trong danh sách bằng cách cắt lát. Đầu tiên, chúng tôi tìm thấy chỉ mục của biến mà chúng tôi muốn thay thế và lưu trữ nó trong biến 'I'. Sau đó, chúng tôi thay thế mục đó bằng một giá trị mới bằng cách sử dụng cắt danh sách.
In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop
In [9]: r = re.compile('(1|324|567)')
In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
9 của toàn bộ danh sách.
Trích xuất, thay thế, chuyển đổi các yếu tố của một danh sách trong Python
0 để xác định xem một chuỗi là tất cả chữ hoa hay tất cả các chữ thường.
In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop
In [9]: r = re.compile('(1|324|567)')
In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
0
Chuyển đổi chữ hoa và chữ thường
Nếu bạn muốn chuyển đổi tất cả các chữ cái thành chữ hoa hoặc chữ thường, hãy sử dụng các phương thức chuỗi
Sử dụng các biểu thức có điều kiện để chỉ chuyển đổi những yếu tố thỏa mãn các điều kiện.
In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop
In [9]: r = re.compile('(1|324|567)')
In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
6 để xác định xem một chuỗi là tất cả bảng chữ cái hay tất cả số.
Kiểm tra xem một chuỗi là số, chữ cái, chữ và số hay ASCII
In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop
In [9]: r = re.compile('(1|324|567)')
In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
2
Nhiều điều kiện
Bạn cũng có thể chỉ định nhiều điều kiện bằng cách sử dụng
In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop
In [9]: r = re.compile('(1|324|567)')
In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
8 của toàn bộ danh sách. Bạn cũng có thể sử dụng phủ định
1 sẽ an toàn hơn vì kết quả sẽ khác nhau tùy thuộc vào thứ tự.
In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop
In [9]: r = re.compile('(1|324|567)')
In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
3
Biểu thức chính quy (Regex)
Bạn có thể sử dụng các biểu thức thông thường (regex) để xử lý linh hoạt hơn.
Re - Hoạt động biểu thức thường xuyên - Tài liệu Python 3.9.7
In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop
In [9]: r = re.compile('(1|324|567)')
In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
8 của các hiểu biết như trong các ví dụ trước.
In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop
In [9]: r = re.compile('(1|324|567)')
In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
1 để thay thế phần phù hợp với mẫu regex. Nếu bạn muốn trích xuất và chỉ thay thế các phần tử phù hợp, hãy thêm
[expressionforvariable_nameiniterableifcondition]
1.
In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop
In [9]: r = re.compile('(1|324|567)')
In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
5
Làm thế nào để bạn thay thế một phần tử trong một mảng python?
Chúng ta có thể thay thế các giá trị bên trong danh sách bằng cách cắt lát. Đầu tiên, chúng tôi tìm thấy chỉ mục của biến mà chúng tôi muốn thay thế và lưu trữ nó trong biến 'I'. Sau đó, chúng tôi thay thế mục đó bằng một giá trị mới bằng cách sử dụng cắt danh sách.using slicing. First, we find the index of variable that we want to replace and store it in variable 'i'. Then, we replace that item with a new value using list slicing.
Làm cách nào để thay thế một chuỗi trong một mảng numpy?
thay thế () hàm, mỗi phần tử trong ARR, trả về một bản sao của chuỗi với tất cả các lần xuất hiện của chuỗi con cũ được thay thế bằng mới ...
ARR: [giống như mảng của str] đã cho mảng giống như chuỗi ..
Cũ: [str hoặc unicode] Bộ con cũ mà bạn muốn thay thế ..
Làm thế nào để bạn thay thế một chuỗi cụ thể trong Python?
Cú pháp thay thế ()..
Cú pháp: String.replace (cũ, mới, đếm).
Parameters:.
Giá trị trả về: Nó trả về một bản sao của chuỗi trong đó tất cả các lần xuất hiện của một chuỗi con được thay thế bằng một chuỗi con khác ..
Thay thế () làm gì trong Python?
Phương thức python String thay thế () Phương thức thay thế () thay thế một cụm từ được chỉ định bằng một cụm từ được chỉ định khác.Lưu ý: Tất cả các lần xuất hiện của cụm từ được chỉ định sẽ được thay thế, nếu không có gì khác được chỉ định.replaces a specified phrase with another specified phrase. Note: All occurrences of the specified phrase will be replaced, if nothing else is specified.