Trong python, phép nối và phép lặp được hỗ trợ bởi các kiểu dữ liệu chuỗi cả có thể thay đổi [danh sách] và không thay đổi [tuple, chuỗi]. Các loại trình tự như đối tượng phạm vi không hỗ trợ nối và lặp lại. Hơn nữa, các bộ chứa Python là các kiểu dữ liệu không theo trình tự [chẳng hạn như bộ hoặc từ điển] không hỗ trợ các toán tử nối và lặp lại. Trong bài viết này, chúng ta sẽ xem xét chi tiết các phép nối và phép lặp được hỗ trợ bởi các kiểu dữ liệu trình tự như danh sách, bộ dữ liệu và chuỗi
Các chủ đề được đề cập trong câu chuyện này
Ảnh của Tác giả
nối
Phép nối được thực hiện bởi toán tử
s1="Welcome" s2="to" s3="python" s4=s1+" " + s2+" "+ s3 print [s4]#Output:Welcome to python7. Phép nối được hỗ trợ bởi các kiểu dữ liệu chuỗi [chuỗi, danh sách, bộ]. Việc nối chỉ được thực hiện giữa các kiểu dữ liệu giống nhau
cú pháp
s1="Welcome" s2="to" s3="python" s4=s1+" " + s2+" "+ s3 print [s4]#Output:Welcome to python8
nối chuỗi
Chuỗi là một kiểu dữ liệu chuỗi bất biến. Kết nối các kiểu dữ liệu chuỗi bất biến luôn dẫn đến một đối tượng mới
ví dụ 1. Các chuỗi được nối như cũ và không có khoảng trống nào được thêm vào giữa các chuỗi
s1="Welcome" s2="to" s3="python" s4=s1+s2+s3 print [s4]#Output:Welcometopython
ví dụ 2. Nếu chúng ta muốn khoảng cách giữa hai chuỗi trong khi nối, chúng ta phải bao gồm khoảng trắng trong chính chuỗi đó hoặc nối khoảng trắng
Phương pháp 1
s1="Welcome " s2="to " s3="python" s4=s1+s2+s3 print [s4]#Output:Welcome to python
Phương pháp 2
s1="Welcome" s2="to" s3="python" s4=s1+" " + s2+" "+ s3 print [s4]#Output:Welcome to python
ví dụ 3. Kết nối giữa các loại dữ liệu khác nhau
Điều này sẽ nâng cao
s1="Welcome" s2="to" s3="python" s4=s1+" " + s2+" "+ s3 print [s4]#Output:Welcome to python9
s1="Welcome" s2="to" s3="python" s4=[3.8] s5=s1+s2+s3+s4 #Output:TypeError: can only concatenate str [not "list"] to str
Ví dụ 4. Sử dụng toán tử
s1="Welcome" s2="to" s3="python" s4=[3.8] s5=s1+s2+s3+s4 #Output:TypeError: can only concatenate str [not "list"] to str0 dẫn đến và bổ sung cho các đối tượng int và nối trong chuỗi________số 8
Ví dụ 5. Nếu các chuỗi được đặt cạnh nhau mà không có toán tử
s1="Welcome" s2="to" s3="python" s4=[3.8] s5=s1+s2+s3+s4 #Output:TypeError: can only concatenate str [not "list"] to str0, điều này sẽ dẫn đến sự nối
s1="Welcome" s2="to" s3="python" s4=s1+" " + s2+" "+ s3 print [s4]#Output:Welcome to python0
Ví dụ 6. Áp dụng các phương thức cho chuỗi trong khi nối
s1="Welcome" s2="to" s3="python" s4=s1+" " + s2+" "+ s3 print [s4]#Output:Welcome to python1
Nối các đối tượng bộ
Bộ dữ liệu là một kiểu dữ liệu chuỗi bất biến. Kết nối các kiểu dữ liệu chuỗi bất biến luôn dẫn đến một đối tượng mới
ví dụ 1. Nối hai đối tượng tuple
s1="Welcome" s2="to" s3="python" s4=s1+" " + s2+" "+ s3 print [s4]#Output:Welcome to python2
ví dụ 2. Kết nối giữa các loại dữ liệu khác nhau
s1="Welcome" s2="to" s3="python" s4=s1+" " + s2+" "+ s3 print [s4]#Output:Welcome to python3
Nối các đối tượng danh sách
ví dụ 1. Nối hai đối tượng danh sách
s1="Welcome" s2="to" s3="python" s4=s1+" " + s2+" "+ s3 print [s4]#Output:Welcome to python4
ví dụ 2. Áp dụng các hàm đã sắp xếp [] vào danh sách trong khi nối
s1="Welcome " s2="to " s3="python" s4=s1+s2+s3 print [s4]#Output:Welcome to python0
Sự khác biệt giữa nối danh sách và gọi phương thức mở rộng trong danh sách
Nối hai danh sách sẽ dẫn đến một đối tượng danh sách mới, nhưng gọi phương thức mở rộng sẽ tự cập nhật danh sách ban đầu. Kiểu trả về của nó là
s1="Welcome" s2="to" s3="python" s4=[3.8] s5=s1+s2+s3+s4 #Output:TypeError: can only concatenate str [not "list"] to str2
s1="Welcome " s2="to " s3="python" s4=s1+s2+s3 print [s4]#Output:Welcome to python1
s1="Welcome " s2="to " s3="python" s4=s1+s2+s3 print [s4]#Output:Welcome to python2
Nối không được hỗ trợ bởi bộ và từ điển
Điều này sẽ làm tăng TypeError
s1="Welcome " s2="to " s3="python" s4=s1+s2+s3 print [s4]#Output:Welcome to python3
sự lặp lại
Các kiểu dữ liệu chuỗi [cả có thể thay đổi và không thay đổi] hỗ trợ toán tử lặp lại
s1="Welcome" s2="to" s3="python" s4=[3.8] s5=s1+s2+s3+s4 #Output:TypeError: can only concatenate str [not "list"] to str3 Toán tử lặp lại
s1="Welcome" s2="to" s3="python" s4=[3.8] s5=s1+s2+s3+s4 #Output:TypeError: can only concatenate str [not "list"] to str3 sẽ tạo nhiều bản sao của đối tượng cụ thể đó và kết hợp chúng lại với nhau. Khi * được sử dụng với một số nguyên, nó thực hiện phép nhân nhưng với danh sách, bộ hoặc chuỗi, nó thực hiện
s1="Welcome" s2="to" s3="python" s4=[3.8] s5=s1+s2+s3+s4 #Output:TypeError: can only concatenate str [not "list"] to str5
cú pháp
s1="Welcome" s2="to" s3="python" s4=[3.8] s5=s1+s2+s3+s4 #Output:TypeError: can only concatenate str [not "list"] to str6
ví dụ 1. Toán tử lặp trên Chuỗi
s1="Welcome " s2="to " s3="python" s4=s1+s2+s3 print [s4]#Output:Welcome to python4
ví dụ 2. Toán tử lặp trên Danh sách
Các mục trong chuỗi không được sao chép nhưng được tham chiếu nhiều lần
s1="Welcome " s2="to " s3="python" s4=s1+s2+s3 print [s4]#Output:Welcome to python5
ví dụ 3. Toán tử lặp trong danh sách lồng nhau
Các mục trong chuỗi không được sao chép, chúng được tham chiếu nhiều lần.
______67
Các phần tử trong danh sách l2 đang đề cập đến cùng một phần tử trong danh sách l1. Vì vậy, sửa đổi bất kỳ thành phần nào của danh sách l1 cũng sẽ sửa đổi danh sách l2
s1="Welcome " s2="to " s3="python" s4=s1+s2+s3 print [s4]#Output:Welcome to python6
Ảnh của Tác giả
Ví dụ 4. Toán tử lặp lại trên một đối tượng tuple
s1="Welcome " s2="to " s3="python" s4=s1+s2+s3 print [s4]#Output:Welcome to python7
Ví dụ 5. Giá trị lặp lại được cho là 0
Khi một giá trị nhỏ hơn hoặc bằng 0 được đưa ra, nó sẽ trả về một chuỗi trống cùng loại
s1="Welcome " s2="to " s3="python" s4=s1+s2+s3 print [s4]#Output:Welcome to python8
s1="Welcome " s2="to " s3="python" s4=s1+s2+s3 print [s4]#Output:Welcome to python9
Ví dụ 6. Toán tử
s1="Welcome" s2="to" s3="python" s4=[3.8] s5=s1+s2+s3+s4 #Output:TypeError: can only concatenate str [not "list"] to str8 trên đối tượng int
Nó sẽ thực hiện thao tác nhân cho đối tượng int
s1="Welcome" s2="to" s3="python" s4=s1+" " + s2+" "+ s3 print [s4]#Output:Welcome to python0
Ví dụ 7. Toán tử lặp lại trên tập hợp và đối tượng từ điển
Nó sẽ tăng
s1="Welcome" s2="to" s3="python" s4=s1+" " + s2+" "+ s3 print [s4]#Output:Welcome to python9
s1="Welcome" s2="to" s3="python" s4=s1+" " + s2+" "+ s3 print [s4]#Output:Welcome to python1
Toán tử lặp so với hàm repeat[]
Repeat[]
Điều này tạo ra một trình vòng lặp trả về đối tượng nhiều lần và chạy vô thời hạn trừ khi đối số thời gian được đề cập. Nếu đối số lần không được đề cập, nó sẽ trả về một trình vòng lặp vô hạn. Bộ, từ điển và các loại dữ liệu cũng được hỗ trợ trong hàm repeat[]. Phương pháp này được hỗ trợ bởi mô-đun itertools.
s1="Welcome" s2="to" s3="python" s4=s1+" " + s2+" "+ s3 print [s4]#Output:Welcome to python2
s1="Welcome" s2="to" s3="python" s4=s1+" " + s2+" "+ s3 print [s4]#Output:Welcome to python3
s1="Welcome" s2="to" s3="python" s4=s1+" " + s2+" "+ s3 print [s4]#Output:Welcome to python4
s1="Welcome" s2="to" s3="python" s4=s1+" " + s2+" "+ s3 print [s4]#Output:Welcome to python5
s1="Welcome" s2="to" s3="python" s4=s1+" " + s2+" "+ s3 print [s4]#Output:Welcome to python6
Phần kết luận
Các toán tử nối và lặp lại chỉ được hỗ trợ bởi các kiểu dữ liệu chuỗi ngoại trừ khi có đối tượng phạm vi. Cả phép nối và phép lặp luôn dẫn đến một đối tượng mới. Việc nối chỉ được thực hiện giữa các kiểu dữ liệu giống nhau và sự khác biệt giữa danh sách nối và phương thức mở rộng là việc nối đó dẫn đến một đối tượng danh sách mới trong đó phần mở rộng[] sẽ cập nhật danh sách ban đầu. Việc lặp lại cũng có thể được thực hiện bằng cách sử dụng phương thức repeat[] và điều này sẽ trả về một trình vòng lặp. Các kiểu dữ liệu từ điển và tập hợp cũng được hỗ trợ trong hàm repeat[]