01/10/2018, 09:56

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ả?

*grab popcorn* viết 11:59 ngày 01/10/2018

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\\:'

Henry viết 12:07 ngày 01/10/2018

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

*grab popcorn* viết 12:12 ngày 01/10/2018

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

Henry viết 12:00 ngày 01/10/2018

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

*grab popcorn* viết 12:02 ngày 01/10/2018

Ko ko, thật ra ko cần sắp xếp
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)

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

Henry viết 12:10 ngày 01/10/2018

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

*grab popcorn* viết 11:59 ngày 01/10/2018

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à \

Henry viết 12:03 ngày 01/10/2018

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?

*grab popcorn* viết 12:04 ngày 01/10/2018

Đúng rồi đó

import string

a.lstrip(string.printable);
-> ''
Henry viết 12:03 ngày 01/10/2018

Em cám ơn …đủ 20 chars

Bài liên quan
0