Thắc mắc về strip trong Python

Em có hai string
a = 'C:\\Users\\Admin\\Desktop\\myscript'
b = 'C:\\Users\\Admin\\Desktop'
và khi em
a.lstrip(b) thì kết quả em nhận được đó là 'yscript'
Em vẫn chưa hiểu làm sao mà nó lấy mất char m của em trong khi chuỗi b không có đoạn nào là \\m cả?

lstrip

Return a copy of the string with leading characters removed. If chars is omitted or None, whitespace characters are removed. If given and not None, chars must be a string; the characters in the string will be stripped from the beginning of the string this method is called on.

b như trên có thể gom gọn thành
b = 'ACDUserdinktopm\\:'

2 Likes

Làm sao ra được chuỗi đó ạ?

1 Like

Cái tham số truyền vào hàm strip là các ký tự mình muốn strip.
Nên mình chỉ đơn giản bỏ mấy ký tự dư rồi sắp xếp lại hoa thường thôi :v

2 Likes

e đang không rõ cái quy luật sắp xếp cho lắm?

1 Like

Ko ko, thật ra ko cần sắp xếp :smiley:
Mình làm vậy cho dễ nhìn hơn tí thôi.
Do phần chữ thường rỗi quá nên mình lười xếp lại theo tăng dần (sr, lúc đó mình lười code) :joy:

Nếu có tâm sẽ ntn:
b = 'ACDUdeikmnoprst\\:'

2 Likes

vậy thì lí do làm răng mà nó làm mất string \\m của e vậy? :scream:

1 Like

Như nói ở trên, nó đọc chuỗi b, xem chuỗi b có ký tự nào thì nó sẽ strip ký tự đó tới khi nó gặp ký tự không phải nằm trong chuỗi b.

Chuỗi b có ký tự m và \-> strip m và \

2 Likes

vậy đồng nghĩa với việc nếu chuỗi b có tất cả những letters thì khi strip thì chuỗi a luôn luôn là rỗng?

1 Like

Đúng rồi đó :smiley:

import string

a.lstrip(string.printable);
-> ''
4 Likes

Em cám ơn :smiley: …đủ 20 chars

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?