Với một danh sách, toán tử lặp lại tạo các bản sao của các tham chiếu. Mặc dù điều này có vẻ đơn giản, nhưng khi chúng ta cho phép một danh sách tham chiếu đến một danh sách khác, một vấn đề tế nhị có thể nảy sinh
Xem xét phần mở rộng sau trên ví dụ trước
s1="Welcome "
s2="to "
s3="python"
s4=s1+s2+s3
print [s4]#Output:Welcome to python
4 là danh sách ba tham chiếu đến s1="Welcome "
s2="to "
s3="python"
s4=s1+s2+s3
print [s4]#Output:Welcome to python
5 được tạo bởi toán tử lặp lại. Sơ đồ tham khảo được hiển thị dưới đâyBây giờ, điều gì sẽ xảy ra nếu chúng ta sửa đổi một giá trị trong
s1="Welcome "
s2="to "
s3="python"
s4=s1+s2+s3
print [s4]#Output:Welcome to python
5s1="Welcome "
s2="to "
s3="python"
s4=s1+s2+s3
print [s4]#Output:Welcome to python
4 cho thấy sự thay đổi ở ba nơi. Có thể dễ dàng nhận thấy điều này bằng cách lưu ý rằng trong sơ đồ tham chiếu, chỉ có một s1="Welcome "
s2="to "
s3="python"
s4=s1+s2+s3
print [s4]#Output:Welcome to python
5, vì vậy bất kỳ thay đổi nào đối với nó đều xuất hiện trong cả ba tham chiếu từ s1="Welcome "
s2="to "
s3="python"
s4=s1+s2+s3
print [s4]#Output:Welcome to python
4Đây là ví dụ tương tự trong codelens. Xem qua mã đặc biệt chú ý đến kết quả của việc thực hiện câu lệnh gán
s1="Welcome"
s2="to"
s3="python"
s4=s1+" " + s2+" "+ s3
print [s4]#Output:Welcome to python
0 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 python
1. 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 nhaucú pháp
s1="Welcome"
s2="to"
s3="python"
s4=s1+" " + s2+" "+ s3
print [s4]#Output:Welcome to python
2nố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 python
3s1="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=s1+" " + s2+" "+ s3
print [s4]#Output:Welcome to python
4 dẫn đến và bổ sung cho các đối tượng int và nối trong chuỗi________số 8Ví 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=s1+" " + s2+" "+ s3
print [s4]#Output:Welcome to python
4, điều này sẽ dẫn đến phép nốis1="Welcome"
s2="to"
s3="python"
s4=s1+" " + s2+" "+ s3
print [s4]#Output:Welcome to python
0Ví 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 python
1Nối các đối tượng tuple
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 python
2ví 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 python
3Nố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 python
4ví 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 python
0Sự 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=s1+" " + s2+" "+ s3
print [s4]#Output:Welcome to python
6s1="Welcome "
s2="to "
s3="python"
s4=s1+s2+s3
print [s4]#Output:Welcome to python
1Nố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 python
2sự 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=s1+" " + s2+" "+ s3
print [s4]#Output:Welcome to python
7Toán tử lặp lại s1="Welcome"
s2="to"
s3="python"
s4=s1+" " + s2+" "+ s3
print [s4]#Output:Welcome to python
7 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=s1+" " + s2+" "+ s3
print [s4]#Output:Welcome to python
9cú 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 str
0ví 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 python
3ví 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 python
4ví 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.
______61
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 python
5Ví 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 python
6Ví 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 python
7Ví 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 str
2 trên đối tượng intNó 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 python
8Ví dụ 7. Toán tử lặp lại trên tập hợp và đối tượng từ điển
Nó sẽ nâng cao
s1="Welcome"
s2="to"
s3="python"
s4=s1+" " + s2+" "+ s3
print [s4]#Output:Welcome to python
3s1="Welcome "
s2="to "
s3="python"
s4=s1+s2+s3
print [s4]#Output:Welcome to python
9Toá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. Set, dictionary và kiểu 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 python
0Sự 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à kết quả nối trong 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[]
Tài nguyên
Xem không gian này để biết thêm các bài viết về Python và Khoa học dữ liệu. Nếu bạn muốn đọc thêm các hướng dẫn của tôi, hãy theo dõi tôi trên Medium, LinkedIn, Twitter