Hướng dẫn how do you append a character in python? - làm thế nào để bạn thêm một ký tự trong python?
Đối tượng chuỗi Python là bất biến. Vì vậy, mỗi khi chúng tôi sử dụng toán tử + để kết hợp hai chuỗi, một chuỗi mới được tạo. Nếu chúng ta phải nối nhiều chuỗi, sử dụng toán tử + sẽ tạo ra nhiều chuỗi tạm thời trước khi chúng ta có kết quả cuối cùng. Show Chuỗi python nốiChúng ta hãy nhìn vào một chức năng để kết hợp một chuỗi ’n lần.
Lưu ý rằng tôi đang xác định chức năng này để giới thiệu việc sử dụng toán tử +. Sau này tôi sẽ sử dụng mô -đun thời gian để kiểm tra hiệu suất. Nếu bạn chỉ đơn giản muốn kết hợp một chuỗi ’n lần, bạn có thể làm điều đó dễ dàng bằng cách sử dụng 0.Một cách khác để thực hiện hoạt động chuỗi nối là bằng cách tạo một danh sách và nối các chuỗi vào danh sách. Sau đó, sử dụng hàm nối chuỗi () để hợp nhất chúng lại với nhau để lấy chuỗi kết quả.
Hãy để thử nghiệm các phương pháp này để đảm bảo rằng chúng đang hoạt động như mong đợi.
Output:
Cách tốt nhất để nối các chuỗi trong PythonTôi có cả hai phương thức được xác định trong tệp 1. Hãy để sử dụng mô -đun thời gian để kiểm tra hiệu suất của họ.
Bản tóm tắtNếu có một vài chuỗi, thì bạn có thể sử dụng bất kỳ phương pháp nào để nối chúng. Từ góc độ dễ đọc, sử dụng toán tử + có vẻ tốt hơn đối với một vài chuỗi. Tuy nhiên, nếu bạn phải nối nhiều chuỗi, thì bạn nên sử dụng hàm danh sách và tham gia (). Bạn có thể kiểm tra toàn bộ tập lệnh Python và nhiều ví dụ về Python từ Kho lưu trữ GitHub của chúng tôi. Nếu bạn chỉ có một tham chiếu đến một chuỗi và bạn kết hợp một chuỗi khác vào cuối, thì CPython hiện các trường hợp đặc biệt này và cố gắng mở rộng chuỗi tại chỗ. Kết quả cuối cùng là hoạt động được khấu hao o (n). e.g.
Đã từng là o (n^2), nhưng bây giờ nó là o (n). Từ nguồn (byteObject.c):
Nó đủ dễ dàng để xác minh theo kinh nghiệm. $ python -m timeit -s"s=''" "for i in xrange(10):s+='a'" 1000000 loops, best of 3: 1.85 usec per loop $ python -m timeit -s"s=''" "for i in xrange(100):s+='a'" 10000 loops, best of 3: 16.8 usec per loop $ python -m timeit -s"s=''" "for i in xrange(1000):s+='a'" 10000 loops, best of 3: 158 usec per loop $ python -m timeit -s"s=''" "for i in xrange(10000):s+='a'" 1000 loops, best of 3: 1.71 msec per loop $ python -m timeit -s"s=''" "for i in xrange(100000):s+='a'" 10 loops, best of 3: 14.6 msec per loop $ python -m timeit -s"s=''" "for i in xrange(1000000):s+='a'" 10 loops, best of 3: 173 msec per loop Tuy nhiên, điều quan trọng cần lưu ý là tối ưu hóa này không phải là một phần của thông số Python. Nó chỉ trong việc triển khai Cpython theo như tôi biết. Ví dụ, cùng một thử nghiệm thực nghiệm trên Pypy hoặc Jython có thể hiển thị hiệu suất O (N ** 2) cũ hơn. however to note that this optimisation isn't part of the Python spec. It's only in the cPython implementation as far as I know. The same empirical testing on pypy or jython for example might show the older O(n**2) performance . $ pypy -m timeit -s"s=''" "for i in xrange(10):s+='a'" 10000 loops, best of 3: 90.8 usec per loop $ pypy -m timeit -s"s=''" "for i in xrange(100):s+='a'" 1000 loops, best of 3: 896 usec per loop $ pypy -m timeit -s"s=''" "for i in xrange(1000):s+='a'" 100 loops, best of 3: 9.03 msec per loop $ pypy -m timeit -s"s=''" "for i in xrange(10000):s+='a'" 10 loops, best of 3: 89.5 msec per loop Cho đến nay rất tốt, nhưng sau đó, $ pypy -m timeit -s"s=''" "for i in xrange(100000):s+='a'" 10 loops, best of 3: 12.8 sec per loop ouch thậm chí còn tồi tệ hơn bậc hai. Vì vậy, Pypy đang làm một cái gì đó hoạt động tốt với các chuỗi ngắn, nhưng hoạt động kém cho các chuỗi lớn hơn. Tôi có thể nối một char vào một chuỗi không?Sử dụng hàm strncat () để nối các ký tự CH ở cuối str. strncat () là một hàm được xác định trước được sử dụng để xử lý chuỗi. sợi dây.. strncat() is a predefined function used for string handling. string.
Nhân vật phụ lục là gì?Phương thức nối (char c) nối thêm biểu diễn chuỗi của đối số char vào chuỗi này.Đối số được nối liền với nội dung của chuỗi này.Độ dài của chuỗi này tăng thêm 1.appends the string representation of the char argument to this sequence. The argument is appended to the contents of this sequence. The length of this sequence increases by 1. |