Tách số trong chuỗi python

Khi tách một chuỗi được phân tách bằng dấu phẩy thành một danh sách trong Python, nếu không có khoảng trắng ở giữa, chỉ cần split [] sẽ hoạt động. Nếu có khoảng trắng, sẽ rất hữu ích nếu kết hợp nó với dải [] để loại bỏ những khoảng trống thừa. Ngoài ra, sử dụng ký hiệu đọc hiểu danh sách là một cách viết thông minh.

Trong phần này, trước tiên chúng tôi giải thích những điều sau đây.

  • Tách một chuỗi với một dấu phân cách được chỉ định và trả lại nó dưới dạng một danh sáchsplit[]
  • Loại bỏ các ký tự thừa từ đầu và cuối của một chuỗi.strip[]
  • Kí hiệu liệt kê hiểu để áp dụng các hàm và phương pháp để liệt kê các phần tử.

Nó cũng chỉ ra cách tạo danh sách các chuỗi được phân tách bằng dấu cách và dấu phẩy bằng cách xóa dấu cách, như được hiển thị bên dưới.
one, two, three'

Ngoài ra, chúng ta sẽ thảo luận về những điều sau

  • Làm thế nào để lấy nó dưới dạng một danh sách các số
  • Cách sử dụng join [] để nối danh sách và biến nó trở lại thành chuỗi

split[]:Tách một chuỗi với một dấu phân cách được chỉ định và trả lại nó dưới dạng một danh sách

Sử dụng phương thức split [] cho các chuỗi, bạn có thể chia một chuỗi bằng một dấu phân cách được chỉ định và lấy nó dưới dạng một danh sách [mảng]. Dấu phân cách đã chỉ định có thể được chỉ định bằng đối số sau.sep

  • str.split[] — Built-in Types — Python 3.10.1 Documentation

Nếu đối số sep bị bỏ qua và không có dấu phân cách nào được chỉ định, nó sẽ chia chuỗi theo dấu cách và trả về một danh sách. Các dấu cách và tab liên tiếp cũng sẽ chia danh sách, vì vậy nếu bạn muốn tạo danh sách các chuỗi được phân cách bằng tab, bạn có thể sử dụng split [] mà không cần đối số.

s = 'one two three'
l = s.split[]
print[l]
# ['one', 'two', 'three']

s = 'one two        three'
l = s.split[]
print[l]
# ['one', 'two', 'three']

s = 'one\ttwo\tthree'
l = s.split[]
print[l]
# ['one', 'two', 'three']

Nếu một dấu phân tách được chỉ định trong đối số sep, nó sẽ chia danh sách theo chuỗi đó và trả về một danh sách.

s = 'one::two::three'
l = s.split['::']
print[l]
# ['one', 'two', 'three']

Trong trường hợp chuỗi được phân tách bằng dấu phẩy, nếu không có thêm khoảng trắng thì không có vấn đề gì, nhưng nếu bạn chạy split [] với dấu phẩy làm dấu phân cách cho chuỗi được phân tách bằng dấu phẩy + khoảng trắng, bạn sẽ kết thúc. lên với danh sách các chuỗi có khoảng trắng còn lại ở đầu.

s = 'one,two,three'
l = s.split[',']
print[l]
# ['one', 'two', 'three']

s = 'one, two, three'
l = s.split[',']
print[l]
# ['one', ' two', ' three']

Bạn có thể sử dụng dấu phẩy + khoảng trắng làm dấu phân cách như sau, nhưng nó sẽ không hoạt động nếu số lượng khoảng trắng trong chuỗi ban đầu khác nhau., '

s = 'one, two, three'
l = s.split[', ']
print[l]
# ['one', 'two', 'three']

s = 'one, two,  three'
l = s.split[', ']
print[l]
# ['one', 'two', ' three']

Phương thức chuỗi dải [], sẽ được giải thích tiếp theo, có thể được sử dụng để xử lý hai khoảng trắng.

strip[]:Loại bỏ các ký tự thừa từ đầu và cuối của một chuỗi.

dải [] là một phương thức để loại bỏ các ký tự thừa từ đầu và cuối của một chuỗi.

  • str.strip[] — Built-in Types — Python 3.10.1 Documentation

Nếu đối số bị bỏ qua, một chuỗi mới được trả về với các ký tự khoảng trắng bị xóa. Bản thân chuỗi gốc không bị thay đổi.

s = '  one  '
print[s.strip[]]
# one

print[s]
#   one  

Nếu một chuỗi được chỉ định làm đối số, các ký tự có trong chuỗi sẽ bị xóa.

s = '-+-one-+-'
print[s.strip['-+']]
# one

Trong trường hợp này, dấu cách không bị xóa. Do đó, nếu bạn cũng muốn loại bỏ khoảng trắng, hãy chuyển một chuỗi bao gồm khoảng trắng làm đối số, như được hiển thị bên dưới.-+ '

s = '-+- one -+-'
print[s.strip['-+']]
#  one 

s = '-+- one -+-'
print[s.strip['-+ ']]
# one

dải [] xử lý cả hai đầu, nhưng các chức năng sau cũng khả dụng.

  • lstrip[]:Chỉ xử lý phần đầu
  • rstrip[]:Chỉ xử lý ở cuối dòng.

Kí hiệu đọc hiểu danh sách: áp dụng các hàm và phương pháp để liệt kê các phần tử

Nếu bạn muốn áp dụng một chức năng hoặc phương thức cho các phần tử của danh sách, thật thông minh là sử dụng ký hiệu hiểu danh sách thay vì vòng lặp for nếu bạn muốn lấy danh sách cuối cùng.

  • Những bài viết liên quan:Sử dụng ký hiệu hiểu danh sách Python

Ở đây, chúng tôi áp dụng dải [] cho danh sách thu được bằng cách tách chuỗi bằng split []. Khoảng trắng thừa trong một chuỗi được phân tách bằng dấu phẩy có chứa khoảng trắng có thể được loại bỏ để tạo danh sách.

s = 'one, two, three'
l = [x.strip[] for x in s.split[',']]
print[l]
# ['one', 'two', 'three']

Khi điều này được áp dụng cho một chuỗi rỗng, một danh sách có một chuỗi rỗng duy nhất làm phần tử có thể được lấy.

s = ''
l = [x.strip[] for x in s.split[',']]
print[l]
print[len[l]]
# ['']
# 1

Nếu bạn muốn lấy một danh sách trống cho một chuỗi trống, bạn có thể thiết lập một nhánh có điều kiện trong ký hiệu hiểu danh sách.

s = ''
l = [x.strip[] for x in s.split[','] if not s == '']
print[l]
print[len[l]]
# []
# 0

one, , three'
Ngoài ra, nếu thiếu một phần tử được phân tách bằng dấu phẩy, như được mô tả ở trên, phương thức đầu tiên sẽ liệt kê nó như một phần tử chuỗi trống.

s = 'one, , three'
l = [x.strip[] for x in s.split[',']]
print[l]
print[len[l]]
# ['one', '', 'three']
# 3

Nếu bạn muốn bỏ qua những phần còn thiếu, bạn có thể thiết lập một nhánh có điều kiện trong ký hiệu hiểu danh sách.

s = 'one, ,three'
l = [x.strip[] for x in s.split[','] if not x.strip[] == '']
print[l]
print[len[l]]
# ['one', 'three']
# 2

Nhận dưới dạng danh sách các số

Nếu bạn muốn nhận một chuỗi số được phân tách bằng dấu phẩy dưới dạng danh sách các số thay vì một chuỗi, hãy áp dụng int [] hoặc float [] để chuyển đổi chuỗi thành một số trong ký hiệu hiểu danh sách.

s = '1, 2, 3, 4'
l = [x.strip[] for x in s.split[',']]
print[l]
print[type[l[0]]]
# ['1', '2', '3', '4']
# 

s = '1, 2, 3, 4'
l = [int[x.strip[]] for x in s.split[',']]
print[l]
print[type[l[0]]]
# [1, 2, 3, 4]
# 

join[]:Hợp nhất một danh sách và lấy nó dưới dạng một chuỗi

Trong mẫu ngược lại, nếu bạn muốn tham gia một danh sách và nhận các chuỗi được phân tách bằng dấu phân cách cụ thể, hãy sử dụng phương thức join [].

  • str.join[] — Built-in Types — Python 3.10.1 Documentation

Rất dễ mắc lỗi, nhưng lưu ý rằng join [] là một phương thức chuỗi, không phải là một phương thức danh sách. Danh sách được chỉ định như một đối số.

s = 'one, two,  three'
l = [x.strip[] for x in s.split[',']]
print[l]
# ['one', 'two', 'three']

print[','.join[l]]
# one,two,three

print['::'.join[l]]
# one::two::three

Bạn có thể viết nó trong một dòng như sau.

s = 'one, two,  three'
s_new = '-'.join[[x.strip[] for x in s.split[',']]]
print[s_new]
# one-two-three

Nếu bạn chỉ muốn thay đổi một dấu phân cách cố định, sẽ dễ dàng hơn thay thế nó bằng phương thức Replace [].

s = 'one,two,three'
s_new = s.replace[',', '+']
print[s_new]
# one+two+three

Chủ Đề