Cách hiệu quả nhất để nối nhiều chuỗi lại với nhau python là gì?

Có rất ít sự đảm bảo trong cuộc sống. cái chết, thuế và các lập trình viên cần xử lý các chuỗi. Chuỗi có thể có nhiều dạng. Chúng có thể là văn bản phi cấu trúc, tên người dùng, mô tả sản phẩm, tên cột cơ sở dữ liệu hoặc bất kỳ thứ gì khác mà chúng tôi mô tả bằng ngôn ngữ

Với sự phổ biến gần như phổ biến của dữ liệu chuỗi, điều quan trọng là phải thành thạo các công cụ giao dịch khi nói đến chuỗi. May mắn thay, Python làm cho thao tác chuỗi trở nên rất đơn giản, đặc biệt khi so sánh với các ngôn ngữ khác và thậm chí các phiên bản Python cũ hơn

Trong bài viết này, bạn sẽ tìm hiểu một số thao tác chuỗi cơ bản nhất. tách, nối và nối. Bạn sẽ không chỉ học cách sử dụng những công cụ này mà còn hiểu sâu hơn về cách thức hoạt động của chúng.

Lấy bài kiểm tra. Kiểm tra kiến ​​thức của bạn với bài kiểm tra tương tác “Tách, nối và nối các chuỗi trong Python” của chúng tôi. Sau khi hoàn thành, bạn sẽ nhận được điểm số để có thể theo dõi quá trình học tập của mình theo thời gian

Lấy bài kiểm tra "

Tiền thưởng miễn phí. Nhấp vào đây để nhận Bảng cheat Python và tìm hiểu kiến ​​thức cơ bản về Python 3, như làm việc với các kiểu dữ liệu, từ điển, danh sách và hàm Python

tách chuỗi

Trong Python, các chuỗi được biểu diễn dưới dạng các đối tượng, không thay đổi. điều này có nghĩa là đối tượng được biểu diễn trong bộ nhớ không thể bị thay đổi trực tiếp. Hai dữ kiện này có thể giúp bạn học (và sau đó ghi nhớ) cách sử dụng

# Do this instead:
'a,b,c'.split(',')
9

Bạn có đoán được hai tính năng đó của chuỗi liên quan đến chức năng phân tách trong Python như thế nào không? . Trong một số ngôn ngữ khác (như Perl), chuỗi gốc đóng vai trò là đầu vào cho hàm

# Do this instead:
'a,b,c'.split(',')
9 độc lập thay vì một phương thức được gọi trên chính chuỗi đó

Ghi chú. Các cách gọi phương thức chuỗi

Các phương thức chuỗi như

# Do this instead:
'a,b,c'.split(',')
9 chủ yếu được hiển thị ở đây dưới dạng các phương thức mẫu được gọi trên các chuỗi. Chúng cũng có thể được gọi là các phương thức tĩnh, nhưng điều này không lý tưởng vì nó “dài dòng” hơn. ” Để hoàn thiện, đây là một ví dụ

# Avoid this:
str.split('a,b,c', ',')

Điều này cồng kềnh và khó sử dụng khi bạn so sánh nó với cách sử dụng ưa thích

# Do this instead:
'a,b,c'.split(',')

Để biết thêm về ví dụ, lớp và các phương thức tĩnh trong Python, hãy xem hướng dẫn chuyên sâu của chúng tôi

Điều gì về tính bất biến của chuỗi?

Ghi chú. Hoạt động tại chỗ

Các hoạt động tại chỗ là các hoạt động thay đổi trực tiếp đối tượng mà chúng được gọi. Một ví dụ phổ biến là phương pháp

>>> 'this is my string'.split()
['this', 'is', 'my', 'string']
3 được sử dụng trong danh sách. khi bạn gọi
>>> 'this is my string'.split()
['this', 'is', 'my', 'string']
3 trong một danh sách, danh sách đó sẽ được thay đổi trực tiếp bằng cách thêm đầu vào vào
>>> 'this is my string'.split()
['this', 'is', 'my', 'string']
3 vào cùng một danh sách

Loại bỏ các quảng cáo

Tách không có tham số

Trước khi đi sâu hơn, hãy xem một ví dụ đơn giản

>>>

>>> 'this is my string'.split()
['this', 'is', 'my', 'string']

Đây thực sự là trường hợp đặc biệt của cuộc gọi

# Do this instead:
'a,b,c'.split(',')
9, mà tôi đã chọn vì tính đơn giản của nó. Không có bất kỳ dấu phân cách nào được chỉ định,
# Do this instead:
'a,b,c'.split(',')
9 sẽ tính bất kỳ khoảng trắng nào là dấu phân cách

Một tính năng khác của cuộc gọi trần tới

# Do this instead:
'a,b,c'.split(',')
9 là nó tự động cắt bỏ khoảng trắng ở đầu và cuối, cũng như khoảng trắng liên tiếp. So sánh việc gọi
# Do this instead:
'a,b,c'.split(',')
9 trên chuỗi sau mà không có tham số dấu phân cách và có
>>> s = ' this   is  my string '
>>> s.split()
['this', 'is', 'my', 'string']
>>> s.split(' ')
['', 'this', '', '', 'is', '', 'my', 'string', '']
0 làm tham số dấu phân cách

>>>

>>> s = ' this   is  my string '
>>> s.split()
['this', 'is', 'my', 'string']
>>> s.split(' ')
['', 'this', '', '', 'is', '', 'my', 'string', '']

Điều đầu tiên cần chú ý là điều này thể hiện tính bất biến của các chuỗi trong Python. các cuộc gọi tiếp theo tới

# Do this instead:
'a,b,c'.split(',')
9 hoạt động trên chuỗi ban đầu, không nằm trong danh sách kết quả của cuộc gọi đầu tiên tới
# Do this instead:
'a,b,c'.split(',')
9

Điều thứ hai—và điều chính—bạn sẽ thấy là cuộc gọi

# Do this instead:
'a,b,c'.split(',')
9 trần trích xuất các từ trong câu và loại bỏ bất kỳ khoảng trắng nào

Chỉ định Dấu phân cách

Mặt khác,

>>> s = ' this   is  my string '
>>> s.split()
['this', 'is', 'my', 'string']
>>> s.split(' ')
['', 'this', '', '', 'is', '', 'my', 'string', '']
4, theo nghĩa đen hơn nhiều. Khi có dấu phân cách ở đầu hoặc ở cuối, bạn sẽ nhận được một chuỗi trống, bạn có thể thấy chuỗi này trong phần tử đầu tiên và phần tử cuối cùng của danh sách kết quả

Khi có nhiều dấu phân cách liên tiếp (chẳng hạn như giữa “this” và “is” và giữa “is” và “my”), dấu phân cách đầu tiên sẽ được sử dụng làm dấu phân cách và các dấu phân cách tiếp theo sẽ tìm đường vào danh sách kết quả của bạn

Ghi chú. Dấu phân cách trong các cuộc gọi tới

# Do this instead:
'a,b,c'.split(',')
9

Mặc dù ví dụ trên sử dụng một ký tự khoảng trắng làm dấu phân cách đầu vào cho

# Do this instead:
'a,b,c'.split(',')
9, nhưng bạn không bị giới hạn về loại ký tự hoặc độ dài của chuỗi mà bạn sử dụng làm dấu phân cách. Yêu cầu duy nhất là dấu phân cách của bạn phải là một chuỗi. Bạn có thể sử dụng bất cứ thứ gì từ
>>> s = ' this   is  my string '
>>> s.split()
['this', 'is', 'my', 'string']
>>> s.split(' ')
['', 'this', '', '', 'is', '', 'my', 'string', '']
7 đến thậm chí
>>> s = ' this   is  my string '
>>> s.split()
['this', 'is', 'my', 'string']
>>> s.split(' ')
['', 'this', '', '', 'is', '', 'my', 'string', '']
8

Hạn chế chia tách với Maxsplit

# Do this instead:
'a,b,c'.split(',')
9 có một tham số tùy chọn khác gọi là
>>> s = "this is my string"
>>> s.split(maxsplit=1)
['this', 'is my string']
0. Theo mặc định,
# Do this instead:
'a,b,c'.split(',')
9 sẽ thực hiện tất cả các phân tách có thể có khi được gọi. Tuy nhiên, khi bạn đưa ra một giá trị cho
>>> s = "this is my string"
>>> s.split(maxsplit=1)
['this', 'is my string']
0, thì chỉ có số lần tách đã cho sẽ được thực hiện. Sử dụng chuỗi ví dụ trước của chúng tôi, chúng tôi có thể thấy
>>> s = "this is my string"
>>> s.split(maxsplit=1)
['this', 'is my string']
0 đang hoạt động

>>>

>>> s = "this is my string"
>>> s.split(maxsplit=1)
['this', 'is my string']

Như bạn thấy ở trên, nếu bạn đặt

>>> s = "this is my string"
>>> s.split(maxsplit=1)
['this', 'is my string']
0 thành
>>> s = "this is my string"
>>> s.split(maxsplit=1)
['this', 'is my string']
5, vùng khoảng trắng đầu tiên được sử dụng làm dấu phân cách và phần còn lại sẽ bị bỏ qua. Hãy làm một số bài tập để kiểm tra mọi thứ chúng ta đã học được cho đến nay

Tập thể dục. "Tự mình thử. Maxsplit"Hiển thị/Ẩn

Điều gì xảy ra khi bạn đưa ra một số âm làm tham số

>>> s = "this is my string"
>>> s.split(maxsplit=1)
['this', 'is my string']
0?

Giải pháp. "Tự mình thử. Maxsplit"Hiển thị/Ẩn

# Do this instead:
'a,b,c'.split(',')
9 sẽ phân tách chuỗi của bạn trên tất cả các dấu phân cách có sẵn, đây cũng là hành vi mặc định khi ____25_______0 không được đặt

Tập thể dục. "Kiểm tra mức độ hiểu mục"Hiển thị/Ẩn

Gần đây, bạn đã nhận được một tệp có giá trị được phân tách bằng dấu phẩy (CSV) có định dạng rất tệ. Công việc của bạn là trích xuất từng hàng thành một danh sách, với mỗi phần tử của danh sách đó đại diện cho các cột của tệp đó. Điều gì làm cho nó bị định dạng xấu?

Giả sử rằng tệp của bạn đã được tải vào bộ nhớ dưới dạng chuỗi nhiều dòng sau

Name,Phone,Address
Mike Smith,15554218841,123 Nice St, Roy, NM, USA
Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA
Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL

Đầu ra của bạn phải là một danh sách các danh sách

[
    ['Mike Smith', '15554218841', '123 Nice St, Roy, NM, USA'],
    ['Anita Hernandez', '15557789941', '425 Sunny St, New York, NY, USA'],
    ['Guido van Rossum', '315558730', 'Science Park 123, 1098 XG Amsterdam, NL']
]

Mỗi danh sách bên trong đại diện cho các hàng của CSV mà chúng tôi quan tâm, trong khi danh sách bên ngoài chứa tất cả cùng nhau

Giải pháp. "Kiểm tra mức độ hiểu mục"Hiển thị/Ẩn

Đây là giải pháp của tôi. Có một vài cách để tấn công này. Điều quan trọng là bạn đã sử dụng

# Do this instead:
'a,b,c'.split(',')
9 với tất cả các tham số tùy chọn của nó và nhận được kết quả như mong đợi

input_string = """Name,Phone,Address
Mike Smith,15554218841,123 Nice St, Roy, NM, USA
Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA
Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL"""

def string_split_ex(unsplit):
    results = []

    # Bonus points for using splitlines() here instead, 
    # which will be more readable
    for line in unsplit.split('\n')[1:]:
        results.append(line.split(',', maxsplit=2))

    return results

print(string_split_ex(input_string))

Chúng tôi gọi

# Do this instead:
'a,b,c'.split(',')
9 hai lần ở đây. Lần sử dụng đầu tiên có thể trông đáng sợ, nhưng đừng lo lắng. Chúng ta sẽ bước qua nó và bạn sẽ cảm thấy thoải mái với những cách diễn đạt như thế này. Hãy xem lại cuộc gọi
# Do this instead:
'a,b,c'.split(',')
9 đầu tiên.
Name,Phone,Address
Mike Smith,15554218841,123 Nice St, Roy, NM, USA
Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA
Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL
2

Phần tử đầu tiên là

Name,Phone,Address
Mike Smith,15554218841,123 Nice St, Roy, NM, USA
Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA
Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL
3, đây chỉ là biến trỏ đến chuỗi đầu vào của bạn. Sau đó, chúng tôi có cuộc gọi
# Do this instead:
'a,b,c'.split(',')
9.
Name,Phone,Address
Mike Smith,15554218841,123 Nice St, Roy, NM, USA
Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA
Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL
5. Ở đây, chúng tôi đang tách một ký tự đặc biệt được gọi là ký tự xuống dòng

Name,Phone,Address
Mike Smith,15554218841,123 Nice St, Roy, NM, USA
Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA
Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL
6 làm gì? . Trong một chuỗi nhiều dòng như
Name,Phone,Address
Mike Smith,15554218841,123 Nice St, Roy, NM, USA
Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA
Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL
7 của chúng tôi, có một
Name,Phone,Address
Mike Smith,15554218841,123 Nice St, Roy, NM, USA
Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA
Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL
6 ẩn ở cuối mỗi dòng

Phần cuối cùng có thể là mới.

Name,Phone,Address
Mike Smith,15554218841,123 Nice St, Roy, NM, USA
Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA
Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL
9. Câu lệnh cho đến lúc này cung cấp cho chúng ta một danh sách mới trong bộ nhớ và
Name,Phone,Address
Mike Smith,15554218841,123 Nice St, Roy, NM, USA
Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA
Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL
9 trông giống như một ký hiệu chỉ mục danh sách, và nó—loại. Ký hiệu chỉ mục mở rộng này cho chúng ta một lát danh sách. Trong trường hợp này, chúng tôi lấy phần tử tại chỉ mục
>>> s = "this is my string"
>>> s.split(maxsplit=1)
['this', 'is my string']
5 và mọi thứ sau nó, loại bỏ phần tử tại chỉ mục
[
    ['Mike Smith', '15554218841', '123 Nice St, Roy, NM, USA'],
    ['Anita Hernandez', '15557789941', '425 Sunny St, New York, NY, USA'],
    ['Guido van Rossum', '315558730', 'Science Park 123, 1098 XG Amsterdam, NL']
]
2

Nói chung, chúng tôi lặp qua một danh sách các chuỗi, trong đó mỗi phần tử đại diện cho mỗi dòng trong chuỗi đầu vào nhiều dòng ngoại trừ dòng đầu tiên

Tại mỗi chuỗi, chúng tôi gọi lại

# Do this instead:
'a,b,c'.split(',')
9 bằng cách sử dụng
[
    ['Mike Smith', '15554218841', '123 Nice St, Roy, NM, USA'],
    ['Anita Hernandez', '15557789941', '425 Sunny St, New York, NY, USA'],
    ['Guido van Rossum', '315558730', 'Science Park 123, 1098 XG Amsterdam, NL']
]
4 làm ký tự phân tách, nhưng lần này chúng tôi đang sử dụng
>>> s = "this is my string"
>>> s.split(maxsplit=1)
['this', 'is my string']
0 để chỉ phân tách ở hai dấu phẩy đầu tiên, giữ nguyên địa chỉ. Sau đó, chúng tôi nối kết quả của cuộc gọi đó vào mảng
[
    ['Mike Smith', '15554218841', '123 Nice St, Roy, NM, USA'],
    ['Anita Hernandez', '15557789941', '425 Sunny St, New York, NY, USA'],
    ['Guido van Rossum', '315558730', 'Science Park 123, 1098 XG Amsterdam, NL']
]
6 được đặt tên phù hợp và trả lại cho người gọi

Loại bỏ các quảng cáo

Ghép nối và tham gia các chuỗi

Hoạt động chuỗi cơ bản khác ngược lại với việc tách chuỗi. nối chuỗi. Nếu bạn chưa thấy từ này, đừng lo lắng. Đó chỉ là một cách nói thú vị để nói “dán lại với nhau. ”

Nối với toán tử [ ['Mike Smith', '15554218841', '123 Nice St, Roy, NM, USA'], ['Anita Hernandez', '15557789941', '425 Sunny St, New York, NY, USA'], ['Guido van Rossum', '315558730', 'Science Park 123, 1098 XG Amsterdam, NL'] ] 7

Có một số cách để làm điều này, tùy thuộc vào những gì bạn đang cố gắng đạt được. Phương pháp đơn giản và phổ biến nhất là sử dụng ký hiệu dấu cộng (

[
    ['Mike Smith', '15554218841', '123 Nice St, Roy, NM, USA'],
    ['Anita Hernandez', '15557789941', '425 Sunny St, New York, NY, USA'],
    ['Guido van Rossum', '315558730', 'Science Park 123, 1098 XG Amsterdam, NL']
]
7) để cộng nhiều chuỗi lại với nhau. Chỉ cần đặt một
[
    ['Mike Smith', '15554218841', '123 Nice St, Roy, NM, USA'],
    ['Anita Hernandez', '15557789941', '425 Sunny St, New York, NY, USA'],
    ['Guido van Rossum', '315558730', 'Science Park 123, 1098 XG Amsterdam, NL']
]
7 giữa bao nhiêu chuỗi mà bạn muốn nối với nhau

>>>

>>> 'a' + 'b' + 'c'
'abc'

Để phù hợp với chủ đề toán học, bạn cũng có thể nhân một chuỗi để lặp lại nó

>>>

>>> 'do' * 2
'dodo'

Hãy nhớ rằng, chuỗi là bất biến. Nếu bạn nối hoặc lặp lại một chuỗi được lưu trữ trong một biến, bạn sẽ phải gán chuỗi mới cho một biến khác để giữ nó

>>>

# Do this instead:
'a,b,c'.split(',')
0

Nếu chúng ta không có các chuỗi bất biến, thì thay vào đó,

input_string = """Name,Phone,Address
Mike Smith,15554218841,123 Nice St, Roy, NM, USA
Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA
Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL"""

def string_split_ex(unsplit):
    results = []

    # Bonus points for using splitlines() here instead, 
    # which will be more readable
    for line in unsplit.split('\n')[1:]:
        results.append(line.split(',', maxsplit=2))

    return results

print(string_split_ex(input_string))
0 sẽ xuất ra
input_string = """Name,Phone,Address
Mike Smith,15554218841,123 Nice St, Roy, NM, USA
Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA
Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL"""

def string_split_ex(unsplit):
    results = []

    # Bonus points for using splitlines() here instead, 
    # which will be more readable
    for line in unsplit.split('\n')[1:]:
        results.append(line.split(',', maxsplit=2))

    return results

print(string_split_ex(input_string))
1

Một lưu ý khác là Python không thực hiện chuyển đổi chuỗi ẩn. Nếu bạn cố nối một chuỗi với loại không phải chuỗi, Python sẽ tăng một số

input_string = """Name,Phone,Address
Mike Smith,15554218841,123 Nice St, Roy, NM, USA
Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA
Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL"""

def string_split_ex(unsplit):
    results = []

    # Bonus points for using splitlines() here instead, 
    # which will be more readable
    for line in unsplit.split('\n')[1:]:
        results.append(line.split(',', maxsplit=2))

    return results

print(string_split_ex(input_string))
2

>>>

# Do this instead:
'a,b,c'.split(',')
1

Điều này là do bạn chỉ có thể nối các chuỗi với các chuỗi khác, đây có thể là hành vi mới đối với bạn nếu bạn đến từ một ngôn ngữ như JavaScript, ngôn ngữ này cố gắng thực hiện chuyển đổi kiểu ngầm định

Chuyển từ danh sách sang chuỗi trong Python với input_string = """Name,Phone,Address Mike Smith,15554218841,123 Nice St, Roy, NM, USA Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL""" def string_split_ex(unsplit): results = [] # Bonus points for using splitlines() here instead, # which will be more readable for line in unsplit.split('\n')[1:]: results.append(line.split(',', maxsplit=2)) return results print(string_split_ex(input_string)) 3

Có một cách khác, mạnh mẽ hơn, để nối các chuỗi lại với nhau. Bạn có thể chuyển từ danh sách sang chuỗi trong Python bằng phương thức

input_string = """Name,Phone,Address
Mike Smith,15554218841,123 Nice St, Roy, NM, USA
Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA
Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL"""

def string_split_ex(unsplit):
    results = []

    # Bonus points for using splitlines() here instead, 
    # which will be more readable
    for line in unsplit.split('\n')[1:]:
        results.append(line.split(',', maxsplit=2))

    return results

print(string_split_ex(input_string))
4

Trường hợp sử dụng phổ biến ở đây là khi bạn có một danh sách có thể lặp lại—như danh sách—được tạo thành từ các chuỗi và bạn muốn kết hợp các chuỗi đó thành một chuỗi duy nhất. Giống như

# Do this instead:
'a,b,c'.split(',')
9,
input_string = """Name,Phone,Address
Mike Smith,15554218841,123 Nice St, Roy, NM, USA
Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA
Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL"""

def string_split_ex(unsplit):
    results = []

    # Bonus points for using splitlines() here instead, 
    # which will be more readable
    for line in unsplit.split('\n')[1:]:
        results.append(line.split(',', maxsplit=2))

    return results

print(string_split_ex(input_string))
3 là một phương thức thể hiện chuỗi. Nếu tất cả các chuỗi của bạn đều ở dạng có thể lặp lại, thì bạn sẽ gọi
input_string = """Name,Phone,Address
Mike Smith,15554218841,123 Nice St, Roy, NM, USA
Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA
Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL"""

def string_split_ex(unsplit):
    results = []

    # Bonus points for using splitlines() here instead, 
    # which will be more readable
    for line in unsplit.split('\n')[1:]:
        results.append(line.split(',', maxsplit=2))

    return results

print(string_split_ex(input_string))
3 trên chuỗi nào?

Đây là một câu hỏi mẹo. Hãy nhớ rằng khi bạn sử dụng

# Do this instead:
'a,b,c'.split(',')
9, bạn gọi nó trên chuỗi hoặc ký tự bạn muốn tách. Hoạt động ngược lại là
input_string = """Name,Phone,Address
Mike Smith,15554218841,123 Nice St, Roy, NM, USA
Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA
Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL"""

def string_split_ex(unsplit):
    results = []

    # Bonus points for using splitlines() here instead, 
    # which will be more readable
    for line in unsplit.split('\n')[1:]:
        results.append(line.split(',', maxsplit=2))

    return results

print(string_split_ex(input_string))
3, vì vậy bạn gọi nó trên chuỗi hoặc ký tự bạn muốn sử dụng để nối các chuỗi có thể lặp lại với nhau

>>>

# Do this instead:
'a,b,c'.split(',')
2

Ở đây, chúng ta nối từng phần tử của danh sách

>>> 'a' + 'b' + 'c'
'abc'
0 bằng dấu phẩy (
[
    ['Mike Smith', '15554218841', '123 Nice St, Roy, NM, USA'],
    ['Anita Hernandez', '15557789941', '425 Sunny St, New York, NY, USA'],
    ['Guido van Rossum', '315558730', 'Science Park 123, 1098 XG Amsterdam, NL']
]
4) và gọi tên
input_string = """Name,Phone,Address
Mike Smith,15554218841,123 Nice St, Roy, NM, USA
Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA
Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL"""

def string_split_ex(unsplit):
    results = []

    # Bonus points for using splitlines() here instead, 
    # which will be more readable
    for line in unsplit.split('\n')[1:]:
        results.append(line.split(',', maxsplit=2))

    return results

print(string_split_ex(input_string))
3 trên đó thay vì danh sách
>>> 'a' + 'b' + 'c'
'abc'
0

Tập thể dục. "Cải thiện khả năng đọc khi tham gia"Hiển thị/Ẩn

Bạn có thể làm cho văn bản đầu ra dễ đọc hơn bằng cách nào?

Giải pháp. "Cải thiện khả năng đọc khi tham gia"Hiển thị/Ẩn

Một điều bạn có thể làm là thêm khoảng cách

>>>

# Do this instead:
'a,b,c'.split(',')
3

Bằng cách không làm gì khác ngoài việc thêm khoảng trắng vào chuỗi tham gia của mình, chúng tôi đã cải thiện đáng kể khả năng đọc kết quả đầu ra của mình. Đây là điều bạn phải luôn ghi nhớ khi nối các chuỗi để con người có thể đọc được

input_string = """Name,Phone,Address
Mike Smith,15554218841,123 Nice St, Roy, NM, USA
Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA
Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL"""

def string_split_ex(unsplit):
    results = []

    # Bonus points for using splitlines() here instead, 
    # which will be more readable
    for line in unsplit.split('\n')[1:]:
        results.append(line.split(',', maxsplit=2))

    return results

print(string_split_ex(input_string))
3 thông minh ở chỗ nó chèn “bộ nối” của bạn vào giữa các chuỗi trong vòng lặp mà bạn muốn tham gia, thay vì chỉ thêm bộ nối của bạn vào cuối mỗi chuỗi trong vòng lặp. Điều này có nghĩa là nếu bạn vượt qua một lần lặp có kích thước
>>> s = "this is my string"
>>> s.split(maxsplit=1)
['this', 'is my string']
5, bạn sẽ không thấy trình nối của mình

>>>

# Do this instead:
'a,b,c'.split(',')
4

Tập thể dục. "Kiểm tra mức độ hiểu mục"Hiển thị/Ẩn

Sử dụng hướng dẫn quét web của chúng tôi, bạn đã xây dựng một công cụ quét thời tiết tuyệt vời. Tuy nhiên, nó tải thông tin chuỗi trong danh sách các danh sách, mỗi danh sách chứa một hàng thông tin duy nhất mà bạn muốn ghi ra tệp CSV

# Do this instead:
'a,b,c'.split(',')
5

Đầu ra của bạn phải là một chuỗi trông như thế này

# Do this instead:
'a,b,c'.split(',')
6

Giải pháp. "Kiểm tra mức độ hiểu mục"Hiển thị/Ẩn

Đối với giải pháp này, tôi đã sử dụng khả năng hiểu danh sách, đây là một tính năng mạnh mẽ của Python cho phép bạn nhanh chóng tạo danh sách. Nếu bạn muốn tìm hiểu thêm về chúng, hãy xem bài viết tuyệt vời này bao gồm tất cả các cách hiểu có sẵn trong Python

Dưới đây là giải pháp của tôi, bắt đầu bằng một danh sách các danh sách và kết thúc bằng một chuỗi

# Do this instead:
'a,b,c'.split(',')
7

Ở đây chúng tôi sử dụng

input_string = """Name,Phone,Address
Mike Smith,15554218841,123 Nice St, Roy, NM, USA
Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA
Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL"""

def string_split_ex(unsplit):
    results = []

    # Bonus points for using splitlines() here instead, 
    # which will be more readable
    for line in unsplit.split('\n')[1:]:
        results.append(line.split(',', maxsplit=2))

    return results

print(string_split_ex(input_string))
3 không phải một lần, mà là hai lần. Đầu tiên, chúng tôi sử dụng nó trong phần hiểu danh sách, thực hiện công việc kết hợp tất cả các chuỗi trong mỗi danh sách bên trong thành một chuỗi duy nhất. Tiếp theo, chúng tôi nối từng chuỗi này với ký tự xuống dòng
Name,Phone,Address
Mike Smith,15554218841,123 Nice St, Roy, NM, USA
Anita Hernandez,15557789941,425 Sunny St, New York, NY, USA
Guido van Rossum,315558730,Science Park 123, 1098 XG Amsterdam, NL
6 mà chúng tôi đã thấy trước đó. Cuối cùng, chúng tôi chỉ cần in kết quả để chúng tôi có thể xác minh rằng nó đúng như chúng tôi mong đợi

Loại bỏ các quảng cáo

Buộc tất cả lại với nhau

Mặc dù điều này kết thúc phần tổng quan này về các thao tác chuỗi cơ bản nhất trong Python (tách, nối và nối), nhưng vẫn còn rất nhiều phương thức chuỗi có thể giúp trải nghiệm của bạn với thao tác chuỗi dễ dàng hơn nhiều

Khi bạn đã thành thạo các thao tác chuỗi cơ bản này, bạn có thể muốn tìm hiểu thêm. May mắn thay, chúng tôi có một số hướng dẫn tuyệt vời để giúp bạn hoàn thành việc nắm vững các tính năng của Python cho phép thao tác chuỗi thông minh

  • Chuỗi f của Python 3. Cú pháp định dạng chuỗi được cải thiện
  • Các phương pháp hay nhất về định dạng chuỗi Python
  • Dữ liệu chuỗi và ký tự trong Python

Lấy bài kiểm tra. Kiểm tra kiến ​​thức của bạn với bài kiểm tra tương tác “Tách, nối và nối các chuỗi trong Python” của chúng tôi. Sau khi hoàn thành, bạn sẽ nhận được điểm số để có thể theo dõi quá trình học tập của mình theo thời gian

Lấy bài kiểm tra "

Đánh dấu là đã hoàn thành

Xem ngay Hướng dẫn này có một khóa học video liên quan do nhóm Real Python tạo. Xem nó cùng với hướng dẫn bằng văn bản để hiểu sâu hơn. Tách, nối và nối các chuỗi trong Python

🐍 Thủ thuật Python 💌

Nhận một Thủ thuật Python ngắn và hấp dẫn được gửi đến hộp thư đến của bạn vài ngày một lần. Không có thư rác bao giờ. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python

Cách hiệu quả nhất để nối nhiều chuỗi lại với nhau python là gì?

Gửi cho tôi thủ thuật Python »

Giới thiệu về Kyle Stratis

Cách hiệu quả nhất để nối nhiều chuỗi lại với nhau python là gì?
Cách hiệu quả nhất để nối nhiều chuỗi lại với nhau python là gì?

Kyle là một nhà phát triển tự học đang làm kỹ sư dữ liệu cấp cao tại Vizit Labs. Trong quá khứ, ông đã thành lập DanqEx (trước đây là Nasdanq. sàn giao dịch chứng khoán meme ban đầu) và Encryptid Gaming

» Thông tin thêm về Kyle


Mỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là

Cách hiệu quả nhất để nối nhiều chuỗi lại với nhau python là gì?

Adriana

Cách hiệu quả nhất để nối nhiều chuỗi lại với nhau python là gì?

Brad

Cách hiệu quả nhất để nối nhiều chuỗi lại với nhau python là gì?

Đan

Cách hiệu quả nhất để nối nhiều chuỗi lại với nhau python là gì?

Joanna

Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực

Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonistas chuyên gia

Nâng cao kỹ năng Python của bạn »

Chuyên gia Kỹ năng Python trong thế giới thực
Với quyền truy cập không giới hạn vào Python thực

Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng Pythonistas chuyên gia

Nâng cao kỹ năng Python của bạn »

Bạn nghĩ sao?

Đánh giá bài viết này

Tweet Chia sẻ Chia sẻ Email

Bài học số 1 hoặc điều yêu thích mà bạn đã học được là gì?

Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi

Cách nhanh nhất để nối Python là gì?

Phương thức extend() cũng là cách nhanh nhất và ngắn gọn nhất để nối các danh sách so với tất cả các phương thức khác.

Cách hiệu quả nhất để nối các chuỗi lại với nhau là gì?

Nối nhiều chuỗi bằng cách sử dụng Tham gia . Mất ít thời gian hơn để thực hiện

Bạn sẽ nối nhiều chuỗi lại với nhau bằng Python như thế nào?

Sử dụng toán tử '+' . Có thể nối nhiều hơn hai chuỗi bằng toán tử '+'.