Tôi đã bắt đầu theo dõi các hàm được sử dụng phổ biến nhất khi thực hiện các câu hỏi về thuật toán trên LeetCode và HackerRank
Trở thành một kỹ sư giỏi không phải là ghi nhớ các chức năng của một ngôn ngữ, nhưng điều đó không có nghĩa là nó không hữu ích. Đặc biệt trong các cuộc phỏng vấn
Đây là bảng mã chuỗi của tôi được chuyển đổi thành một danh sách các câu hỏi để tự kiểm tra bản thân. Mặc dù đây không phải là những câu hỏi phỏng vấn, nhưng việc nắm vững những câu hỏi này sẽ giúp bạn giải quyết các câu hỏi viết mã trực tiếp dễ dàng hơn
Bạn hiểu chuỗi Python đến mức nào?
1. Làm thế nào để bạn xác nhận rằng 2 chuỗi có cùng một bản sắc?
Toán tử
'The worlds fastest plane'.find['plane'] #=> 19
'The worlds fastest plane'.find['car'] #=> -1
5 trả về 'The worlds fastest plane'.find['plane'] #=> 19
'The worlds fastest plane'.find['car'] #=> -1
6 nếu 2 tên trỏ đến cùng một vị trí trong bộ nhớ. Đây là những gì chúng ta đang đề cập đến khi chúng ta nói về danh tínhĐừng nhầm lẫn giữa
'The worlds fastest plane'.find['plane'] #=> 19
'The worlds fastest plane'.find['car'] #=> -1
5 với 'The worlds fastest plane'.find['plane'] #=> 19
'The worlds fastest plane'.find['car'] #=> -1
8 cái sau chỉ kiểm tra sự bình đẳnganimals = ['python','gopher']
more_animals = animalsprint[animals == more_animals] #=> True
print[animals is more_animals] #=> Trueeven_more_animals = ['python','gopher']print[animals == even_more_animals] #=> True
print[animals is even_more_animals] #=> False
Lưu ý ở trên cách
'The worlds fastest plane'.find['plane'] #=> 19
'The worlds fastest plane'.find['car'] #=> -1
9 và 'The worlds fastest plane'.index['plane'] #=> 19
'The worlds fastest plane'.index['car'] #=> ValueError: substring not found
0 có một danh tính khác nhau mặc dù chúng bằng nhauNgoài ra, hàm
'The worlds fastest plane'.index['plane'] #=> 19
'The worlds fastest plane'.index['car'] #=> ValueError: substring not found
1 trả về 'The worlds fastest plane'.index['plane'] #=> 19
'The worlds fastest plane'.index['car'] #=> ValueError: substring not found
2 của địa chỉ bộ nhớ được liên kết với tên. Hai đối tượng có cùng danh tính sẽ trả về cùng một 'The worlds fastest plane'.index['plane'] #=> 19
'The worlds fastest plane'.index['car'] #=> ValueError: substring not found
2name = 'object'
id[name]
#=> 4408718312
2. Làm cách nào để bạn kiểm tra xem mỗi từ trong một chuỗi có bắt đầu bằng một chữ in hoa không?
Hàm
'The worlds fastest plane'.index['plane'] #=> 19
'The worlds fastest plane'.index['car'] #=> ValueError: substring not found
4 kiểm tra xem mỗi từ có được viết hoa khôngprint[ 'The Hilton'.istitle[] ] #=> True
print[ 'The dog'.istitle[] ] #=> False
print[ 'sticky rice'.istitle[] ] #=> False
3. Kiểm tra xem một chuỗi có chứa một chuỗi con cụ thể không
Toán tử
'The worlds fastest plane'.index['plane'] #=> 19
'The worlds fastest plane'.index['car'] #=> ValueError: substring not found
5 sẽ trả về 'The worlds fastest plane'.find['plane'] #=> 19
'The worlds fastest plane'.find['car'] #=> -1
6 nếu một chuỗi chứa một chuỗi conprint[ 'plane' in 'The worlds fastest plane' ] #=> True
print[ 'car' in 'The worlds fastest plane' ] #=> False
4. Tìm chỉ mục của lần xuất hiện đầu tiên của một chuỗi con trong một chuỗi
Có 2 hàm khác nhau sẽ trả về chỉ số bắt đầu,
'The worlds fastest plane'.index['plane'] #=> 19
'The worlds fastest plane'.index['car'] #=> ValueError: substring not found
7 và 'The worlds fastest plane'.index['plane'] #=> 19
'The worlds fastest plane'.index['car'] #=> ValueError: substring not found
8. Họ có hành vi hơi khác nhau'The worlds fastest plane'.index['plane'] #=> 19
'The worlds fastest plane'.index['car'] #=> ValueError: substring not found
7 trả về len['The first president of the organization..'] #=> 19
0 nếu không tìm thấy chuỗi con'The worlds fastest plane'.find['plane'] #=> 19
'The worlds fastest plane'.find['car'] #=> -1
'The worlds fastest plane'.index['plane'] #=> 19
'The worlds fastest plane'.index['car'] #=> ValueError: substring not found
8 sẽ ném một len['The first president of the organization..'] #=> 19
2'The worlds fastest plane'.index['plane'] #=> 19
'The worlds fastest plane'.index['car'] #=> ValueError: substring not found
5. Đếm tổng số ký tự trong một chuỗi
len['The first president of the organization..'] #=> 19
3 sẽ trả về độ dài của một chuỗilen['The first president of the organization..'] #=> 19
6. Đếm số ký tự cụ thể trong một chuỗi
len['The first president of the organization..'] #=> 19
4 sẽ trả về số lần xuất hiện của một ký tự cụ thể'The first president of the organization..'.count['o'] #=> 3
7. Viết hoa ký tự đầu tiên của chuỗi
Sử dụng chức năng
len['The first president of the organization..'] #=> 19
5 để làm điều này'florida dolphins'.capitalize[] #=> 'Florida dolphins'
8. Chuỗi f là gì và bạn sử dụng nó như thế nào?
Mới trong trăn 3. 6, chuỗi f làm cho nội suy chuỗi thực sự dễ dàng. Sử dụng chuỗi f tương tự như sử dụng
len['The first president of the organization..'] #=> 19
6Chuỗi F được biểu thị bằng một
len['The first president of the organization..'] #=> 19
7 trước dấu ngoặc kép mở đầuname = 'Chris'
food = 'creme brulee'f'Hello. My name is {name} and I like {food}.'
#=> 'Hello. My name is Chris and I like creme brulee'
9. Tìm kiếm một phần cụ thể của chuỗi cho một chuỗi con
'The worlds fastest plane'.index['plane'] #=> 19
'The worlds fastest plane'.index['car'] #=> ValueError: substring not found
8 cũng có thể được cung cấp các chỉ số bắt đầu và kết thúc tùy chọn để tìm kiếm trong một chuỗi lớn hơnname = 'object'
id[name]
#=> 4408718312
0Lưu ý cách ở trên trả về
len['The first president of the organization..'] #=> 19
9 thay vì 'The first president of the organization..'.count['o'] #=> 3
0name = 'object'
id[name]
#=> 4408718312
110. Nội suy một biến thành một chuỗi sử dụng format[]
len['The first president of the organization..'] #=> 19
6 tương tự như sử dụng f-string. Mặc dù theo ý kiến của tôi, nó ít thân thiện với người dùng hơn vì tất cả các biến đều được truyền vào ở cuối chuỗiname = 'object'
id[name]
#=> 4408718312
211. Kiểm tra xem một chuỗi chỉ chứa các số
'The first president of the organization..'.count['o'] #=> 3
2 trả về 'The worlds fastest plane'.find['plane'] #=> 19
'The worlds fastest plane'.find['car'] #=> -1
6 nếu tất cả các ký tự đều là sốname = 'object'
id[name]
#=> 4408718312
3Lưu ý rằng dấu câu không phải là số
name = 'object'
id[name]
#=> 4408718312
412. Tách một chuỗi trên một ký tự cụ thể
Hàm
'The first president of the organization..'.count['o'] #=> 3
4 sẽ tách một chuỗi trên một hoặc nhiều ký tự đã choname = 'object'
id[name]
#=> 4408718312
513. Kiểm tra xem một chuỗi có bao gồm tất cả các ký tự chữ thường không
'The first president of the organization..'.count['o'] #=> 3
5 chỉ trả về 'The worlds fastest plane'.find['plane'] #=> 19
'The worlds fastest plane'.find['car'] #=> -1
6 nếu tất cả các ký tự trong chuỗi là chữ thườngname = 'object'
id[name]
#=> 4408718312
614. Kiểm tra xem ký tự đầu tiên trong chuỗi có phải là chữ thường không
Điều này có thể được thực hiện bằng cách gọi hàm đã đề cập trước đó trên chỉ mục đầu tiên của chuỗi
name = 'object'
id[name]
#=> 4408718312
715. Một số nguyên có thể được thêm vào một chuỗi trong Python không?
Trong một số ngôn ngữ, điều này có thể được thực hiện nhưng python sẽ ném một
'The first president of the organization..'.count['o'] #=> 3
7name = 'object'
id[name]
#=> 4408718312
816. Đảo ngược chuỗi “hello world”
Chúng ta có thể tách chuỗi thành một danh sách các ký tự, đảo ngược danh sách, sau đó nối lại thành một chuỗi
name = 'object'
id[name]
#=> 4408718312
917. Tham gia một danh sách các chuỗi thành một chuỗi duy nhất, được phân tách bằng dấu gạch ngang
Hàm
'The first president of the organization..'.count['o'] #=> 3
8 của Python có thể nối các ký tự trong danh sách với một ký tự đã cho được chèn vào giữa mọi phần tửprint[ 'The Hilton'.istitle[] ] #=> True
print[ 'The dog'.istitle[] ] #=> False
print[ 'sticky rice'.istitle[] ] #=> False
018. Kiểm tra xem tất cả các ký tự trong chuỗi có tuân theo ASCII không
Hàm
'The first president of the organization..'.count['o'] #=> 3
9 trả về 'The worlds fastest plane'.find['plane'] #=> 19
'The worlds fastest plane'.find['car'] #=> -1
6 nếu tất cả các ký tự trong một chuỗi được bao gồm trong ASCIIprint[ 'The Hilton'.istitle[] ] #=> True
print[ 'The dog'.istitle[] ] #=> False
print[ 'sticky rice'.istitle[] ] #=> False
119. Chữ hoa hoặc chữ thường toàn bộ chuỗi
'florida dolphins'.capitalize[] #=> 'Florida dolphins'
1 và 'florida dolphins'.capitalize[] #=> 'Florida dolphins'
2 trả về các chuỗi có tất cả chữ hoa và chữ thườngprint[ 'The Hilton'.istitle[] ] #=> True
print[ 'The dog'.istitle[] ] #=> False
print[ 'sticky rice'.istitle[] ] #=> False
220. Chữ hoa ký tự đầu tiên và cuối cùng của một chuỗi
Như trong một ví dụ trước đây, chúng tôi sẽ nhắm mục tiêu các chỉ số cụ thể của chuỗi. Các chuỗi không thể thay đổi trong Python, vì vậy chúng tôi sẽ xây dựng một chuỗi hoàn toàn mới
print[ 'The Hilton'.istitle[] ] #=> True
print[ 'The dog'.istitle[] ] #=> False
print[ 'sticky rice'.istitle[] ] #=> False
321. Kiểm tra xem một chuỗi có phải là chữ hoa không
Tương tự như
'The first president of the organization..'.count['o'] #=> 3
5, 'florida dolphins'.capitalize[] #=> 'Florida dolphins'
4 chỉ trả về 'The worlds fastest plane'.find['plane'] #=> 19
'The worlds fastest plane'.find['car'] #=> -1
6 nếu toàn bộ chuỗi được viết hoaprint[ 'The Hilton'.istitle[] ] #=> True
print[ 'The dog'.istitle[] ] #=> False
print[ 'sticky rice'.istitle[] ] #=> False
422. Khi nào bạn sẽ sử dụng splitlines[]?
'florida dolphins'.capitalize[] #=> 'Florida dolphins'
6 tách một chuỗi khi ngắt dòngprint[ 'The Hilton'.istitle[] ] #=> True
print[ 'The dog'.istitle[] ] #=> False
print[ 'sticky rice'.istitle[] ] #=> False
523. Cho ví dụ về cắt chuỗi
Cắt một chuỗi cần tới 3 đối số,
'florida dolphins'.capitalize[] #=> 'Florida dolphins'
7'florida dolphins'.capitalize[] #=> 'Florida dolphins'
8 là khoảng thời gian mà các ký tự sẽ được trả về. Vì vậy, bước 3 sẽ trả về ký tự ở mọi chỉ mục thứ 3print[ 'The Hilton'.istitle[] ] #=> True
print[ 'The dog'.istitle[] ] #=> False
print[ 'sticky rice'.istitle[] ] #=> False
624. Chuyển đổi một số nguyên thành một chuỗi
Sử dụng hàm tạo chuỗi,
'florida dolphins'.capitalize[] #=> 'Florida dolphins'
9 cho việc nàyprint[ 'The Hilton'.istitle[] ] #=> True
print[ 'The dog'.istitle[] ] #=> False
print[ 'sticky rice'.istitle[] ] #=> False
725. Kiểm tra xem một chuỗi chỉ chứa các ký tự của bảng chữ cái
name = 'Chris'0 trả về
food = 'creme brulee'f'Hello. My name is {name} and I like {food}.'
#=> 'Hello. My name is Chris and I like creme brulee'
'The worlds fastest plane'.find['plane'] #=> 19
'The worlds fastest plane'.find['car'] #=> -1
6 nếu tất cả các ký tự là chữ cáiprint[ 'The Hilton'.istitle[] ] #=> True
print[ 'The dog'.istitle[] ] #=> False
print[ 'sticky rice'.istitle[] ] #=> False
826. Thay thế tất cả các trường hợp của một chuỗi con trong một chuỗi
Không cần nhập mô-đun biểu thức chính quy, bạn có thể sử dụng
name = 'Chris'2
food = 'creme brulee'f'Hello. My name is {name} and I like {food}.'
#=> 'Hello. My name is Chris and I like creme brulee'
print[ 'The Hilton'.istitle[] ] #=> True
print[ 'The dog'.istitle[] ] #=> False
print[ 'sticky rice'.istitle[] ] #=> False
927. Trả về ký tự tối thiểu trong một chuỗi
Các ký tự viết hoa và các ký tự sớm hơn trong bảng chữ cái có chỉ số thấp hơn.
name = 'Chris'3 sẽ trả về ký tự có chỉ số thấp nhất
food = 'creme brulee'f'Hello. My name is {name} and I like {food}.'
#=> 'Hello. My name is Chris and I like creme brulee'
print[ 'plane' in 'The worlds fastest plane' ] #=> True
print[ 'car' in 'The worlds fastest plane' ] #=> False
028. Kiểm tra xem tất cả các ký tự trong một chuỗi có phải là chữ và số không
Giá trị chữ và số bao gồm chữ cái và số nguyên
print[ 'plane' in 'The worlds fastest plane' ] #=> True
print[ 'car' in 'The worlds fastest plane' ] #=> False
129. Xóa khoảng trắng ở bên trái, bên phải hoặc cả hai bên của chuỗi
name = 'Chris'4,
food = 'creme brulee'f'Hello. My name is {name} and I like {food}.'
#=> 'Hello. My name is Chris and I like creme brulee'
name = 'Chris'5 và
food = 'creme brulee'f'Hello. My name is {name} and I like {food}.'
#=> 'Hello. My name is Chris and I like creme brulee'
name = 'Chris'6 xóa khoảng trắng ở cuối chuỗi
food = 'creme brulee'f'Hello. My name is {name} and I like {food}.'
#=> 'Hello. My name is Chris and I like creme brulee'
print[ 'plane' in 'The worlds fastest plane' ] #=> True
print[ 'car' in 'The worlds fastest plane' ] #=> False
230. Kiểm tra xem một chuỗi bắt đầu bằng hoặc kết thúc bằng một ký tự cụ thể?
name = 'Chris'7 và
food = 'creme brulee'f'Hello. My name is {name} and I like {food}.'
#=> 'Hello. My name is Chris and I like creme brulee'
name = 'Chris'8 kiểm tra xem một chuỗi có bắt đầu và kết thúc bằng một chuỗi con cụ thể không
food = 'creme brulee'f'Hello. My name is {name} and I like {food}.'
#=> 'Hello. My name is Chris and I like creme brulee'
print[ 'plane' in 'The worlds fastest plane' ] #=> True
print[ 'car' in 'The worlds fastest plane' ] #=> False
331. Mã hóa một chuỗi đã cho dưới dạng ASCII
name = 'Chris'9 mã hóa một chuỗi với mã hóa đã cho. Mặc định là
food = 'creme brulee'f'Hello. My name is {name} and I like {food}.'
#=> 'Hello. My name is Chris and I like creme brulee'
name = 'object'
id[name]
#=> 4408718312
00. Nếu một ký tự không thể được mã hóa thì một name = 'object'
id[name]
#=> 4408718312
01 sẽ bị némprint[ 'plane' in 'The worlds fastest plane' ] #=> True
print[ 'car' in 'The worlds fastest plane' ] #=> False
432. Kiểm tra xem tất cả các ký tự có phải là ký tự khoảng trắng không
name = 'object'
id[name]
#=> 4408718312
02 chỉ trả về 'The worlds fastest plane'.find['plane'] #=> 19
'The worlds fastest plane'.find['car'] #=> -1
6 nếu một chuỗi được tạo hoàn toàn bằng khoảng trắngprint[ 'plane' in 'The worlds fastest plane' ] #=> True
print[ 'car' in 'The worlds fastest plane' ] #=> False
533. Tác dụng của việc nhân một chuỗi với 3 là gì?
Chuỗi được nối với nhau 3 lần
print[ 'plane' in 'The worlds fastest plane' ] #=> True
print[ 'car' in 'The worlds fastest plane' ] #=> False
634. Viết hoa ký tự đầu tiên của mỗi từ trong một chuỗi
name = 'object'
id[name]
#=> 4408718312
04 sẽ viết hoa từng từ trong một chuỗiprint[ 'plane' in 'The worlds fastest plane' ] #=> True
print[ 'car' in 'The worlds fastest plane' ] #=> False
735. Nối hai chuỗi
Toán tử bổ sung có thể được sử dụng để nối các chuỗi
print[ 'plane' in 'The worlds fastest plane' ] #=> True
print[ 'car' in 'The worlds fastest plane' ] #=> False
836. Cho ví dụ sử dụng hàm partition[]
name = 'object'
id[name]
#=> 4408718312
05 tách một chuỗi trong trường hợp đầu tiên của một chuỗi con. Một bộ của chuỗi tách được trả về mà không xóa chuỗi conprint[ 'plane' in 'The worlds fastest plane' ] #=> True
print[ 'car' in 'The worlds fastest plane' ] #=> False
937. Điều đó có nghĩa là gì đối với các chuỗi không thay đổi trong Python?
Khi một đối tượng chuỗi đã được tạo, nó không thể thay đổi được. “Sửa đổi” chuỗi đó tạo ra một đối tượng hoàn toàn mới trong bộ nhớ
Chúng ta có thể chứng minh điều đó bằng cách sử dụng hàm
'The worlds fastest plane'.index['plane'] #=> 19
'The worlds fastest plane'.index['car'] #=> ValueError: substring not found
1'The worlds fastest plane'.find['plane'] #=> 19
'The worlds fastest plane'.find['car'] #=> -1
0Ghép nối
name = 'object'
id[name]
#=> 4408718312
07 tạo một đối tượng mới trong bộ nhớ với một 'The worlds fastest plane'.index['plane'] #=> 19
'The worlds fastest plane'.index['car'] #=> ValueError: substring not found
2 mới. Nếu đối tượng thực sự được sửa đổi thì nó sẽ có cùng 'The worlds fastest plane'.index['plane'] #=> 19
'The worlds fastest plane'.index['car'] #=> ValueError: substring not found
238. Việc xác định một chuỗi hai lần [được liên kết với 2 tên biến khác nhau] có tạo ra một hoặc hai đối tượng trong bộ nhớ không?
Ví dụ, viết
name = 'object'
id[name]
#=> 4408718312
10 và name = 'object'
id[name]
#=> 4408718312
11Nó chỉ tạo ra một. Tôi thấy điều này không trực quan khi lần đầu tiên tôi bắt gặp nó. Nhưng điều này giúp python tiết kiệm bộ nhớ khi xử lý chuỗi lớn
Chúng tôi sẽ chứng minh điều này với
'The worlds fastest plane'.index['plane'] #=> 19
'The worlds fastest plane'.index['car'] #=> ValueError: substring not found
1. Lưu ý cách cả hai đều có cùng một 'The worlds fastest plane'.index['plane'] #=> 19
'The worlds fastest plane'.index['car'] #=> ValueError: substring not found
2'The worlds fastest plane'.find['plane'] #=> 19
'The worlds fastest plane'.find['car'] #=> -1
139. Cho ví dụ sử dụng maketrans[] và translate[]
name = 'object'
id[name]
#=> 4408718312
14 tạo ánh xạ từ ký tự này sang ký tự khác. name = 'object'
id[name]
#=> 4408718312
15 sau đó áp dụng ánh xạ đó để dịch một chuỗi'The worlds fastest plane'.find['plane'] #=> 19
'The worlds fastest plane'.find['car'] #=> -1
2Lưu ý ở trên cách chúng tôi thay đổi giá trị của mỗi
name = 'object'
id[name]
#=> 4408718312
16, name = 'object'
id[name]
#=> 4408718312
17, name = 'object'
id[name]
#=> 4408718312
18 và name = 'object'
id[name]
#=> 4408718312
19 trong chuỗi40. Xóa nguyên âm khỏi chuỗi
Một tùy chọn là lặp lại các ký tự trong chuỗi thông qua khả năng hiểu danh sách. Nếu chúng không khớp với một nguyên âm thì hãy nối chúng lại thành một chuỗi
'The worlds fastest plane'.find['plane'] #=> 19
'The worlds fastest plane'.find['car'] #=> -1
341. Khi nào bạn sẽ sử dụng rfind[]?
name = 'object'
id[name]
#=> 4408718312
20 giống như 'The worlds fastest plane'.index['plane'] #=> 19
'The worlds fastest plane'.index['car'] #=> ValueError: substring not found
7 nhưng nó bắt đầu tìm kiếm từ bên phải của một chuỗi và trả về chuỗi con phù hợp đầu tiên'The worlds fastest plane'.find['plane'] #=> 19
'The worlds fastest plane'.find['car'] #=> -1
4Phần kết luận
Như tôi thường giải thích với một người quản lý sản phẩm cũ, các kỹ sư không phải là từ điển của các phương pháp được lưu trữ. Nhưng đôi khi bớt googling một chút có thể làm cho việc viết mã trở nên liền mạch và thú vị hơn