Phương thức tích hợp sẵn của Chuỗi
Cách nhanh để xem phương thức của dữ liệu: Dấu chấm (.)
Ctrl + nhấp chuột trái để xem mã nguồn底层
- Chuyển đổi chữ hoa/thường: .upper(), .lower(), isupper(), islower()
# Ví dụ thực tế: Mã xác nhận hình ảnh không phân biệt chữ hoa/thường.
chuoi = 'jaSon,Tony'
1. Chuyển sang chữ hoa: .upper()
print(chuoi.upper())
JASON,TONY
2. Chuyển sang chữ thường: .lower()
print(chuoi.lower())
jason,tony
3. Kiểm tra có toàn chữ hoa không: .isupper()
print(chuoi.isupper())
False
4. Kiểm tra có toàn chữ thường không: .islower()
print(chuoi.islower())
False
- Kiểm tra chuỗi có bắt đầu/kết thúc bằng ký tự chỉ định: .startswith(), .endswith()
# Kết quả trả về là True hoặc False
van_ban = 'jasom 123 nema oldboy'
1. Kiểm tra ký tự bắt đầu: .startswith()
print(van_ban.startswith('name'))
False
print(van_ban.startswith('j'))
True
print(van_ban.startswith('ja'))
True
print(van_ban.startswith('jas'))
True
2. Kiểm tra kýết thúc bằng ký tự chỉ định: .endswith()
print(van_ban.endswith('girl'))
False
print(van_ban.endswith('y'))
True
print(van_ban.endswith('oldboy'))
True
- Định dạng đầu ra: .format()
# Tương tác với người dùng; Trình giữ chỗ %s %d
# Phương thức tích hợp sẵn chuỗi; format()
# Khi lượng dữ liệu không quá lớn, có thể sử dụng %s, khi cần thay thế dữ liệu lặp lại, có thể sử dụng .format()
1. Tương đương với trình giữ chỗ %s == có bao nhiêu {} thì có bấy nhiêu dữ liệu thay thế
i = 'Tên tôi là {} Tuổi tôi là {}'
print(i.format('Tony', 18))
Tên tôi là Tony Tuổi tôi là 18
2. Có thể thêm số trong {}, tương đương với chỉ mục, lấy vị trí chỉ mục dữ liệu cần thay thế, có thể thêm dữ liệu mới theo chỉ mục
i = 'Tên tôi là {1} Tuổi tôi là {0}'
print(i.format('Tony', 18))
Tên tôi là 18 Tuổi tôi là Tony
i = 'Tên tôi là {1} Tuổi tôi là {0}{1}{0}{0}'
print(i.format('Tony', 18))
Tên tôi là 18 Tuổi tôi là Tony 18 Tony Tony
3. Có thể thêm tên biến trong {} để thêm dữ liệu, tương tự như 2.
i = 'Tên tôi là {ten} Tuổi tôi la {tuoi}'
print(i.format(ten='Tony', tuoi=18))
Tên tôi là Tony Tuổi tôi là 18
- Nối chuỗi: .join()
1. Nối bằng dấu cộng
print('hello' + 'world')
helloworld
2. Nối bằng .join() # Trong Python, các kiểu dữ liệu khác nhau không thể thao tác trực tiếp
Nối chuỗi str
a = ('hello world!', 'hehe')
print(''.join(a))
hello world!hehe
# Nếu không thêm ký tự vào '', hai chuỗi sẽ nối bình thường
a = ('hello world!', 'hehe')
print('@'.join(a))
hello world!@hehe
# Nếu không thêm ký tự vào '', hai chuỗi sẽ nối bình thường, nếu thêm ký tự thì ký tự đó sẽ xuất hiện giữa hai chuỗi
a = 'hello world!hehe'
print('@'.join(a))
h@e@l@l@o@ @w@o@r@l@d@!@h@e@h@e
# Nếu là một chuỗi và thêm ký tự vào '', ký tự @ sẽ xuất hiện giữa mỗi ký tự và khoảng trống
Nối danh sách list # (Sau khi nối, danh sách trở thành kiểu chuỗi)
a = ["123", "456"]
print(''.join(a))
123456
# Nếu có ký tự trong '', nó sẽ xuất hiện giữa hai dữ liệu sau khi nối '@' >>> 123@456
Nối từ điển dict # Sau khi nối, kết quả là chuỗi
a = {"ten":"Tony","tuoi":'18'}
print(''.join(a))
tentuoi
# Nếu có ký tự trong '', nó sẽ xuất hiện giữa hai dữ liệu
# Khi nối từ điển, ta nhận được giá trị của khóa K
- Thay thế ký tự chỉ định trong chuỗi: .replace()
Thay thế ký tự chỉ định; .replace
a = 'hello world!hehe'
print(a.replace('hehe', 'haha'))
hello world!haha
# Thay thế trực tiếp ký tự chỉ định (chuỗi được xem là một thể thống nhất, các ký tự và khoảng trắng bên trong đều là dữ liệu, hehe là dữ liệu liền kề)
#a = 'hello world!hehe'
#print(a.replace('', 'www'))
# Nếu không thêm giá trị nào vào '', 'haha' sẽ được thêm vào mỗi ký tự
# wwwhwwwewwwlwwwlwwwowww wwwwwwwowwwrwwwiwwwdwww!wwwhwwwewwwhwwwewww
a = 'hello world!hehe'
print(a.replace('h', 'www', 2))
wwwello world!wwwehe
# Có thể thêm số ở cuối để biểu thị số lần cần thay thế!
# Ctrl + nhấp chuột trái để xem mã nguồn底层
- Kiểm tra chuỗi có toàn số: .isdigit()
# Toàn số thì là True.
Kiểm tra có toàn số không: .isdigit()
nhap = input('Nhập vào: ').strip() # Người dùng nhập
if nhap.isdigit(): # Kiểm tra có phải là toàn số không
else:
- Các phương thức khác .title(), .capitalize(), .swapcase(), .find(), .index(), .count(), .center(), .isalnum(), .isalpha()
1. Định dạng chữ
1..title() # Chữ cái đầu của mỗi từ trong chuỗi thành chữ hoa
a = 'hello world!hehe'
print(a.title())
Hello World!Hehe
2..capitalize() # Chữ cái đầu của chuỗi thành chữ hoa
a = 'hello world!hehe'
print(a.capitalize())
Hello world!hehe
3..swapcase() # Đổi chữ hoa thành chữ thường và ngược lại
a = 'hello woRiD!HeHe'
print(a.swapcase())
HELLO WOrId!hEhE
2. Tìm chỉ mục bắt đầu của ký tự chỉ định
1..find() # Thêm ký tự cần tìm vào (), có thể là ký tự liên tục, tìm từ trái sang phải, dừng lại khi tìm thấy đầu tiên, không tìm thấy trả về -1, có thể giới hạn phạm vi
a = 'ello world!hehe'
print(a.find('h'))
11
a = 'ello world!hehe'
print(a.find('s'))
-1
2..index() # Thêm ký tự cần tìm vào (), có thể là ký tự liên tục, tìm từ trái sang phải, dừng lại khi tìm thấy đầu tiên, không tìm thấy sẽ 'báo lỗi'.
a = 'ello world!hehe'
print(a.index('h'))
11
3. Đếm số lần xuất hiện của ký tự
.count() # Thêm ký tự cần đếm vào ()
a = 'hello world!hehe'
print(a.count('h'))
3
4. Canh giữa, ký tự điền vào
.center() # Số trong () biểu thị tổng độ dài ký tự cộng với ký tự điền vào
a = 'hello'
print(a.center(18, '@'))
@@@@@@hello@@@@@@@
.ljust() # Canh trái hello@@@@@@@@@@@@@
.rjust() # Canh phải @@@@@@@@@@@@@hello
5. Kiểm tra chuỗi
1. Kiểm tra chuỗi có chứa chữ và số
.isalnum()
a = 'hello123'
print(a.isalnum())
True
2. Kiểm tra chuỗi có chỉ chứa chữ
.isalpha()
a = 'hello123'
print(a.isalpha())
False
Phương thức tích hợp sẵn của Danh sách
Danh sách thường chứa các dữ liệu có cùng kiểu
Chuyển đổi kiểu: Tên kiểu dữ liệu (dữ liệu cần chuyển đổi)
Từ khóa list có thể chuyển đổi các kiểu dữ liệu hỗ trợ vòng lặp for thành danh sách
- Chuyển đổi kiểu dữ liệu thành danh sách
1. Danh sách không thể chuyển đổi int, float thành danh sách, sẽ báo lỗi.
2. Chuyển chuỗi thành danh sách
a = 'hello'
print(list(a))
['h', 'e', 'l', 'l', 'o']
# Chuyển một chuỗi thành nhiều giá trị trong danh sách
3. Chuyển từ điển thành danh sách
a = {'ten':'Tony','tuoi':'28'}
print(list(a))
['ten', 'tuoi']
# Lấy giá trị K của từ điển làm thành danh sách
4. Chuyển tuple thành danh sách
a = (11,22,33)
print(list(a))
[11, 22, 33]
5. Chuyển tập hợp thành danh sách
a = {11,22,33}
print(list(a))
[33, 11, 22]
- Các thao tác đơn giản tích hợp sẵn của danh sách
1. Lấy giá trị bằng chỉ mục
danh_sach = ['qqq','www','eee','rrr','ttt','yyy']
print(danh_sach[0])
qqq
# Giá trị lấy ra bằng chỉ mục là chuỗi
2. Cắt lát, bỏ qua phần cuối
danh_sach = ['qqq','www','eee','rrr','ttt','yyy']
print(danh_sach[2:5])
['eee', 'rrr', 'ttt']
# Có thể dùng số âm để lấy giá trị
danh_sach = ['qqq','www','eee','rrr','ttt','yyy']
print(danh_sach[-4:-1])
['eee', 'rrr', 'ttt']
3. Bước nhảy
danh_sach = ['qqq','www','eee','rrr','ttt','yyy']
print(danh_sach[2:5:2])
['eee', 'ttt']
# Lấy giá trị trong phạm vi và bỏ qua một phần tử
4. Đếm số phần tử trong danh sách
danh_sach = ['qqq','www','eee','rrr','ttt','yyy']
print(len(danh_sach))
6
- Thao tác thêm, sửa của danh sách Quan trọng
Thêm, xóa, sửa, tìm
.append(), .insert(), extend(), .append()
1. Sửa giá trị
danh_sach = ['qqq','www','eee','rrr','ttt','yyy']
danh_sach[3] = '555'
print(danh_sach)
['qqq', 'www', 'eee', '555', 'ttt', 'yyy']
# Gán một biến cho giá trị chỉ mục của danh sách có thể thay thế giá trị hiện tại trong danh sách
2. Thêm giá trị
1. Thêm vào cuối: .append()
danh_sach = ['qqq','www','eee','rrr','ttt','yyy']
danh_sach.append('kkk')
print(danh_sach)
['qqq', 'www', 'eee', 'rrr', 'ttt', 'yyy', 'kkk']
# Thêm chuỗi sẽ thêm một giá trị vào danh sách, thêm danh sách sẽ thêm một danh sách (xem nội dung trong ngoặc đơn làm một thể thống nhất thêm vào danh sách)
2. Chèn phần tử .insert()
danh_sach = ['qqq','www','eee','rrr','ttt','yyy']
danh_sach.insert(2, 'heihei')
print(danh_sach)
['qqq', 'www', 'heihei', 'eee', 'rrr', 'ttt', 'yyy']
# Số được chèn là giá trị chỉ mục, chỉ mục là mấy thì chèn vào vị trí của giá trị đó, chèn danh sách cũng được xem là một thể thống nhất, chèn vào vị trí chỉ định
3. Mở rộng phần tử .extend()
danh_sach = ['qqq','www','eee','rrr','ttt','yyy']
danh_sach.extend([111,222,333,444])
print(danh_sach)
['qqq', 'www', 'eee', 'rrr', 'ttt', 'yyy', 111, 222, 333, 444]
#.extend() để mở rộng, có thể mở rộng danh sách vào, các giá trị được đưa vào một một, có thể dùng vòng lặp for kết hợp .append()
danh_sach = ['qqq','www','eee','rrr','ttt','yyy']
danh_moi = ['z','x','c','v']
for i in danh_moi:
danh_sach.append(i)
print(danh_sach)
['qqq', 'www', 'eee', 'rrr', 'ttt', 'yyy', 'z', 'x', 'c', 'v']
# Vòng lặp gán giá trị trong danh_mới cho i rồi lần lượt thêm vào danh_sach, cuối cùng in danh_sach sau khi vòng lặp kết thúc, nếu danh_sach và danh_sach.append(i) ngang hàng thì giá trị in ra sẽ là giá trị được thêm vào mỗi lần, vì danh sách có 4 phần tử, in 4 lần
['qqq', 'www', 'eee', 'rrr', 'ttt', 'yyy', 'z']
['qqq', 'www', 'eee', 'rrr', 'ttt', 'yyy', 'z', 'x']
['qqq', 'www', 'eee', 'rrr', 'ttt', 'yyy', 'z', 'x', 'c']
['qqq', 'www', 'eee', 'rrr', 'ttt', 'yyy', 'z', 'x', 'c', 'v']
- Xóa dữ liệu trong danh sách
del, .remove(), .pop()
1. Cách xóa chung del (viết tắt của delete)
danh_sach = ['qqq','www','eee','rrr','ttt','yyy']
del danh_sach[2]
print(danh_sach)
['qqq', 'www', 'rrr', 'ttt', 'yyy']
# Xóa giá trị chỉ định dựa trên chỉ mục
2. Chỉ định phần tử cần xóa trong ngoặc .remove()
danh_sach = ['qqq','www','eee','rrr','ttt','yyy']
danh_sach.remove('rrr')
print(danh_sach)
['qqq', 'www', 'eee', 'ttt', 'yyy']
# Xóa giá trị chỉ định dựa trên nội dung trong ngoặc
3. Chỉ định chỉ mục của phần tử cần lấy ra .pop()
danh_sach = ['qqq','www','eee','rrr','ttt','yyy']
danh_sach.pop(2)
print(danh_sach)
['qqq', 'www', 'rrr', 'ttt', 'yyy']
# Xóa phần tử có chỉ mục được chỉ định trong ngoặc, nếu không có gì trong ngoặc thì áp dụng 'chế loại bỏ từ cuối',
#.remove() chỉ định xóa thì dữ liệu đã bị xóa
print(danh_sach.remove('qqq'))
None
# .pop() khác với .remove() là lấy dữ liệu ra trước, có thể gán cho biến, sử dụng khi cần
print(danh_sach.pop('qqq'))
qqq
# Lưu ý kiểu có thể thay đổi và kiểu không thể thay đổi
- Kiểu có thể thay đổi và kiểu không thể thay đổi
1. Kiểu có thể thay đổi; list
Giá trị thay đổi, địa chỉ bộ nhớ không đổi, sửa là giá trị gốc
2. Kiểu không thể thay đổi; int, float, str
Giá trị thay đổi, địa chỉ bộ nhớ chắc chắn thay đổi, tạo ra giá trị mới
Giá trị gốc vẫn còn, có thể gán cho tên biến mới