Phương thức
str.replace[old, new [, count]]2 thay thế mỗi lần xuất hiện khớp của ký tự/văn bản cũ trong chuỗi bằng ký tự/văn bản mới
Ví dụ
text = 'bat ball'
# replace b with c
replaced_text = text.replace['b', 'c']
print[replaced_text]
# Output: cat call
thay thế [] Cú pháp
Cú pháp của nó là
str.replace[old, new [, count]]
thay thế [] Tham số
Phương thức
str.replace[old, new [, count]]2 có thể nhận tối đa 3 tham số
- cũ - chuỗi con cũ bạn muốn thay thế
- mới - chuỗi con mới sẽ thay thế chuỗi con cũ
- đếm [tùy chọn] - số lần bạn muốn thay thế chuỗi con cũ bằng chuỗi con mới
Ghi chú. Nếu số lượng không được chỉ định, phương thức
str.replace[old, new [, count]]2 sẽ thay thế tất cả các lần xuất hiện của chuỗi con cũ bằng chuỗi con mới
thay thế [] Giá trị trả về
Phương thức
str.replace[old, new [, count]]2 trả về một bản sao của chuỗi trong đó chuỗi con cũ được thay thế bằng chuỗi con mới. Chuỗi ban đầu không thay đổi
Bạn đã bao giờ nhìn vào mã của mình và thấy một thác nước gồm các vòng lặp chưa?
Đối với các vòng lặp là một con dao của quân đội Thụy Sĩ để giải quyết vấn đề, nhưng khi nói đến việc quét mã để đọc nhanh những gì bạn đã làm, chúng có thể khiến bạn choáng ngợp
Ba kỹ thuật — ánh xạ, bộ lọc và thu nhỏ — giúp khắc phục chứng cuồng vòng lặp for bằng cách đưa ra các giải pháp thay thế chức năng mô tả lý do tại sao bạn đang lặp lại
Chúng tôi sẽ giới thiệu ngắn gọn từng kỹ thuật trong số ba kỹ thuật, làm nổi bật sự khác biệt về cú pháp giữa chúng trong JavaScript và Python, sau đó đưa ra các ví dụ về cách chuyển đổi vòng lặp for phổ biến
Bản đồ, Bộ lọc và Giảm là gì?Xem lại mã đã viết trước đây của mình, tôi nhận ra rằng 95% thời gian khi lặp qua các chuỗi hoặc mảng tôi thực hiện một trong các thao tác sau. ánh xạ một chuỗi các câu lệnh tới từng giá trị, lọc các giá trị đáp ứng các tiêu chí cụ thể hoặc giảm tập dữ liệu thành một giá trị tổng hợp duy nhất
Với cái nhìn sâu sắc đó, ba phương pháp này là sự công nhận — và triển khai — rằng lý do bạn lặp qua một lần lặp thường thuộc một trong ba loại chức năng này
- Bản đồ. Áp dụng cùng một bộ các bước cho từng mục, lưu trữ kết quả
- Lọc. Áp dụng tiêu chí xác thực, lưu trữ các mục đánh giá Đúng
- Giảm. Trả về một giá trị được truyền từ phần tử này sang phần tử khác
Trong Python, ba kỹ thuật tồn tại dưới dạng các hàm, thay vì các phương thức của lớp Array hoặc String. Điều này có nghĩa là thay vì viết
str.replace[old, new [, count]]6 bạn sẽ viết
str.replace[old, new [, count]]7
Ngoài ra, mỗi kỹ thuật sẽ yêu cầu một chức năng được thông qua, chức năng này sẽ được thực thi cho từng mục. Thông thường, hàm này được viết dưới dạng hàm ẩn danh [được gọi là hàm mũi tên béo trong JavaScript]. Tuy nhiên, trong Python bạn thường thấy các biểu thức lambda được sử dụng
Cú pháp giữa biểu thức lambda và hàm mũi tên thực sự khá giống nhau. Hoán đổi
str.replace[old, new [, count]]8 lấy
str.replace[old, new [, count]]9 và đảm bảo sử dụng từ khóa
// JavaScript Arrow Function const square = number => number * number; // Python Lambda Expression square = lambda number: number * number0 và phần còn lại gần như giống hệt nhau
// JavaScript Arrow Function const square = number => number * number; // Python Lambda Expression square = lambda number: number * number
Một điểm khác biệt chính giữa các hàm mũi tên và biểu thức lambda là các hàm mũi tên có thể mở rộng thành các hàm toàn diện với nhiều câu lệnh trong khi các biểu thức lambda bị giới hạn ở một biểu thức duy nhất được trả về. Do đó, khi sử dụng
// JavaScript Arrow Function const square = number => number * number; // Python Lambda Expression square = lambda number: number * number1,
def inefficientSquare[number]: result = number * number return resultmap[inefficientSquare, my_list0 hoặc
def inefficientSquare[number]: result = number * number return resultmap[inefficientSquare, my_list1 nếu bạn cần thực hiện nhiều thao tác trên từng mục, hãy xác định chức năng của bạn trước rồi đưa vào
def inefficientSquare[number]: result = number * number return resultmap[inefficientSquare, my_listThay thế vòng lặp
Được rồi, vào những thứ tốt. Dưới đây là ba ví dụ về các vòng for phổ biến sẽ được thay thế bằng map, filter và reduce. Lời nhắc lập trình của chúng tôi. Tính tổng các số lẻ bình phương trong một danh sách
Đầu tiên, ví dụ với các vòng for cơ bản. Ghi chú. Điều này hoàn toàn là để trình diễn và có thể được cải thiện ngay cả khi không có bản đồ/bộ lọc/thu nhỏ
numbers = [1,2,3,4,5,6] odd_numbers = [] squared_odd_numbers = [] total = 0# filter for odd numbers for number in numbers: if number % 2 == 1: odd_numbers.append[number]# square all odd numbers for number in odd_numbers: squared_odd_numbers.append[number * number]# calculate total for number in squared_odd_numbers: total += number# calculate average
Hãy chuyển đổi từng bước thành một trong các chức năng
from functools import reduce numbers = [1,2,3,4,5,6] odd_numbers = filter[lambda n: n % 2 == 1, numbers] squared_odd_numbers = map[lambda n: n * n, odd_numbers] total = reduce[lambda acc, n: acc + n, squared_odd_numbers]
Có một vài điểm quan trọng của cú pháp để làm nổi bật
// JavaScript Arrow Function const square = number => number * number; // Python Lambda Expression square = lambda number: number * number
1 vàdef inefficientSquare[number]: result = number * number return resultmap[inefficientSquare, my_list
0 vốn có sẵn. Tuy nhiên,def inefficientSquare[number]: result = number * number return resultmap[inefficientSquare, my_list
1 phải được nhập từ thư việndef inefficientSquare[number]: result = number * number return resultmap[inefficientSquare, my_list
5 trong Python 3+- Biểu thức lambda là đối số đầu tiên trong cả ba hàm trong khi iterable là đối số thứ hai
- Biểu thức lambda cho
def inefficientSquare[number]: result = number * number return resultmap[inefficientSquare, my_list
1 yêu cầu hai đối số. bộ tích lũy [giá trị được truyền cho từng phần tử] và chính phần tử đó
Thông tin
Kiểm tra này ra…
Đọc thêm Đọc thêm Đọc thêmTiện ích mở rộng mã VS sẽ giúp bạn viết mã nhanh hơn. – 2021
Bài viết tiếng Anh, Tin tức, Ngôn ngữ lập trìnhSự khác biệt giữa Nhà phát triển cấp thấp, cấp trung và cấp cao
Phát triển, Bài báo tiếng Anh, Phát triển vi mô, Tin tức, Ngôn ngữ lập trình, Công nghệ phần mềmKhi nào bạn có thể tự gọi mình là Nhà phát triển cấp cao?
Dev News, Development, English Articles, News, Programming Languages, Software Engineering
Đọc thêm Đọc thêm Đọc thêmStack Overflow được bán. Nhưng tương lai của nó là gì?
Dev News, Development, English Articles, News, Programming Languages, Software Engineeringphù thủy. Άνοδος του Λευκού Λύκου
Tin tức dành cho nhà phát triển, Thời gian vui vẻ của nhà phát triển, Thiết kế trò chơi, Phát triển trò chơi, Tin tức, PC, WebChế độ tối για τo google search
Dev News, Frontpage Article, Tin tức, PC, Hướng dẫn, Web
Đọc thêmΕγκρίθηκε η νέα C++20
Đoạn mã, Tin tức nhà phát triển, Phát triển, Tin tức, Ngôn ngữ lập trình, Khoa học, Kỹ thuật phần mềm, Hướng dẫnΣτα σκαριά το 6G
Tin tức dành cho nhà phát triển, Bài viết trên trang nhất, Internet, Tin tức, Ngôn ngữ lập trình, Khoa học, Điện thoại thông minh, Kỹ thuật phần mềm, Web
Làm cách nào để thay thế một ký tự trong một chuỗi trong Python bằng vòng lặp for?
Cái gì nhanh hơn vòng lặp for Python?
Cái nào nhanh hơn vòng lặp for?
Chúng ta có thể thay đổi giá trị I trong vòng lặp Python không?