Hướng dẫn how do you split input multiple lines in python? - làm thế nào để bạn tách nhiều dòng đầu vào trong python?

Sử dụng

>>> " a \n b \r\n c ".split("\n")
[' a ', ' b \r', ' c ']
0..


Tại sao >>> " a \n b \r\n c ".split("\n") [' a ', ' b \r', ' c '] 1 tốt hơn

>>> " a \n b \r\n c ".split("\n")
[' a ', ' b \r', ' c ']
1 xử lý Newlines đúng cách, không giống như
>>> " a \n b \r\n c ".split("\n")
[' a ', ' b \r', ' c ']
3.

Nó cũng có thể tùy chọn trả về ký tự dòng mới trong kết quả phân chia khi được gọi bằng đối số

>>> " a \n b \r\n c ".split("\n")
[' a ', ' b \r', ' c ']
4, rất hữu ích trong một số kịch bản cụ thể.


Tại sao bạn không nên sử dụng >>> " a \n b \r\n c ".split("\n") [' a ', ' b \r', ' c '] 5

Sử dụng

>>> " a \n b \r\n c ".split("\n")
[' a ', ' b \r', ' c ']
3 tạo ra các lỗi rất khó hiểu khi chia sẻ tệp trên các hệ điều hành.

>>> " a \n b \r\n c ".split("\n")
[' a ', ' b \r', ' c ']
7 Trong Python đại diện cho một dòng Unix (mã thập phân ASCII 10), độc lập với HĐH nơi bạn chạy nó. Tuy nhiên, đại diện dòng ASCII phụ thuộc vào hệ điều hành.

Trên Windows,

>>> " a \n b \r\n c ".split("\n")
[' a ', ' b \r', ' c ']
7 là hai ký tự,
>>> " a \n b \r\n c ".split("\n")
[' a ', ' b \r', ' c ']
9 và
>>> " a \n b \r\n c ".split(os.linesep)
[' a \n b ', ' c ']
0 (mã thập phân ASCII 13 và 10,
>>> " a \n b \r\n c ".split(os.linesep)
[' a \n b ', ' c ']
1 và
>>> " a \n b \r\n c ".split("\n")
[' a ', ' b \r', ' c ']
7), trong khi trên Unix hiện đại (Mac OS X, Linux, Android), đó là ký tự duy nhất
>>> " a \n b \r\n c ".split(os.linesep)
[' a \n b ', ' c ']
0.

>>> " a \n b \r\n c ".split(os.linesep)
[' a \n b ', ' c ']
4 hoạt động chính xác ngay cả khi bạn có một chuỗi có các đầu dòng không khớp với nền tảng của bạn:

>>> print " a \n b \r\n c "
 a 
 b 
 c

Tuy nhiên, chia tách rõ ràng trên "\ n", có hành vi phụ thuộc OS:

>>> " a \n b \r\n c ".split("\n")
[' a ', ' b \r', ' c ']

Ngay cả khi bạn sử dụng

>>> " a \n b \r\n c ".split(os.linesep)
[' a \n b ', ' c ']
5, nó sẽ chỉ được chia theo phân tách Newline trên nền tảng của bạn và sẽ thất bại nếu bạn đang xử lý văn bản được tạo trong các nền tảng khác hoặc với giá trị trần
>>> " a \n b \r\n c ".split("\n")
[' a ', ' b \r', ' c ']
7:

>>> " a \n b \r\n c ".split(os.linesep)
[' a \n b ', ' c ']

>>> " a \n b \r\n c ".split("\n")
[' a ', ' b \r', ' c ']
1 giải quyết tất cả các vấn đề này:

>>> " a \n b \r\n c ".splitlines()
[' a ', ' b ', ' c ']

Đọc các tệp trong chế độ văn bản giảm thiểu một phần vấn đề biểu diễn NewLine, vì nó chuyển đổi

>>> " a \n b \r\n c ".split("\n")
[' a ', ' b \r', ' c ']
7 của Python thành đại diện dòng mới của nền tảng.

Tuy nhiên, chế độ văn bản chỉ tồn tại trên Windows. Trên các hệ thống UNIX, tất cả các tệp được mở ở chế độ nhị phân, do đó, sử dụng

>>> " a \n b \r\n c ".split(os.linesep)
[' a \n b ', ' c ']
9 trong hệ thống UNIX với tệp Windows sẽ dẫn đến hành vi không mong muốn. Điều này cũng có thể xảy ra khi chuyển các tập tin trong mạng.

Cập nhật lần cuối vào ngày 19 tháng 8 năm 2022 21:51:43 (UTC/GMT +8 giờ)

Chuỗi Python: Tập thể dục-99 với giải pháp

Viết một chương trình Python để chia một chuỗi đa dòng nhất định thành một danh sách các dòng.

  • Sử dụng str.split () và '\ n' để phù hợp với ngắt dòng và tạo danh sách.
  • Str.SplitLines () cung cấp chức năng tương tự với đoạn trích này.

Giải pháp mẫu:

Mã Python:

def split_lines(s):
  return s.split('\n')
print("Original string:")
print("This\nis a\nmultiline\nstring.\n")
print("Split the said multiline string into a list of lines:")
print(split_lines('This\nis a\nmultiline\nstring.\n'))

Đầu ra mẫu:

Original string:
This
is a
multiline
string.

Split the said multiline string into a list of lines:
['This', 'is a', 'multiline', 'string.', '']

Flowchart:

Hướng dẫn how do you split input multiple lines in python? - làm thế nào để bạn tách nhiều dòng đầu vào trong python?

Trực quan hóa thực thi mã Python:

Công cụ sau đây trực quan hóa những gì máy tính đang làm từng bước khi nó thực hiện chương trình đã nói:

Trình chỉnh sửa mã Python:

Có một cách khác để giải quyết giải pháp này? Đóng góp mã của bạn (và nhận xét) thông qua Disqus.

Trước đây: Viết chương trình Python để giải mã chữ cái đầu tiên của một chuỗi đã cho. Trả về đúng hoặc sai. Write a Python program to decapitalize the first letter of a given string.
Next: Write a Python program to check whether any word in a given sting contains duplicate characrters or not. Return True or False.

Mức độ khó của bài tập này là gì?

Kiểm tra kỹ năng lập trình của bạn với bài kiểm tra của W3Resource.

Python: Lời khuyên trong ngày

Sử dụng toàn bộ danh sách để rút ngắn cho các vòng lặp:

x = [1, 2, 3, 4, 5]
result = []
for idx in range(len(x)):
    result.append(x[idx] * 2)
result

Output:

[2, 4, 6, 8, 10]
[(element * 2) for element in x]

Output:

[2, 4, 6, 8, 10]


  • Bài tập: Top 16 chủ đề phổ biến nhất hàng tuần
  • Bài tập SQL, Thực hành, Giải pháp - Tham gia
  • Bài tập SQL, Thực hành, Giải pháp - Quan sát phụ
  • JavaScript Basic - Bài tập, Thực hành, Giải pháp
  • Java Array: Bài tập, Thực hành, Giải pháp
  • C Bài tập lập trình, Thực hành, Giải pháp: Tuyên bố có điều kiện
  • Cơ sở dữ liệu nhân sự - Sắp xếp bộ lọc: Bài tập, Thực hành, Giải pháp
  • C Bài tập lập trình, Thực hành, Giải pháp: Chuỗi
  • Các loại dữ liệu Python: Từ điển - Bài tập, Thực hành, Giải pháp
  • Câu đố lập trình Python - Bài tập, Thực hành, Giải pháp
  • Mảng C ++: Bài tập, Thực hành, Giải pháp
  • Báo cáo và vòng lặp có điều kiện JavaScript - Bài tập, Thực hành, Giải pháp
  • Thuật toán cơ bản C# Sharp: Bài tập, Thực hành, Giải pháp
  • Python Lambda - Bài tập, Thực hành, Giải pháp
  • Python Pandas DataFrame: Bài tập, Thực hành, Giải pháp
  • Công cụ chuyển đổi
  • JavaScript: HTML Mẫu xác thực