Hướng dẫn how do you split a line into two in python? - làm thế nào để bạn chia một dòng thành hai dòng trong python?

Tôi có một chuỗi

s = 'abcd qwrre qwedsasd zxcwsacds'

Tôi muốn phân chia bất kỳ chuỗi nào chỉ trong hai phần ở lần xuất hiện đầu tiên của khoảng trắng. tức là

'1 2 3'.split(maxsplit=1)
# ['1', '2 3']
0 và
'1 2 3'.split(maxsplit=1)
# ['1', '2 3']
1

Nếu tôi sử dụng

'1 2 3'.split(maxsplit=1)
# ['1', '2 3']
2, nó sẽ cho tôi một lỗi vì có quá nhiều giá trị để giải nén.

Hướng dẫn how do you split a line into two in python? - làm thế nào để bạn chia một dòng thành hai dòng trong python?

Đã hỏi ngày 14 tháng 6 năm 2018 lúc 2:26Jun 14, 2018 at 2:26

1

Bạn có thể sử dụng

'1 2 3'.split(maxsplit=1)
# ['1', '2 3']
3.

Đối số thứ hai

'1 2 3'.split(maxsplit=1)
# ['1', '2 3']
4 là số lượng phân tách tối đa sẽ được thực hiện.

s = 'abcd efgh hijk'
a,b = s.split(' ', 1)
print(a) #abcd
print(b) #efgh hijk

Để biết thêm thông tin về chức năng phân chia chuỗi, xem

'1 2 3'.split(maxsplit=1)
# ['1', '2 3']
5 trong hướng dẫn.

Hướng dẫn how do you split a line into two in python? - làm thế nào để bạn chia một dòng thành hai dòng trong python?

Ilkkachu

6.08615 Huy hiệu bạc29 Huy hiệu đồng15 silver badges29 bronze badges

Đã trả lời ngày 14 tháng 6 năm 2018 lúc 2:35Jun 14, 2018 at 2:35

Từ các tài liệu Python

str.split (sep = none, maxsplit = -1)

Trả về một danh sách các từ trong chuỗi, sử dụng SEP làm chuỗi DELIMITER. Nếu MAXSplit được đưa ra, tại hầu hết các phân tách MaxSplit được thực hiện (do đó, danh sách sẽ có hầu hết các phần tử MaxSplit+1). Nếu MaxSplit không được chỉ định hoặc -1, thì không có giới hạn về số lượng phân tách (tất cả các phân tách có thể được thực hiện).

'1 2 3'.split(maxsplit=1)
# ['1', '2 3']

Đã trả lời ngày 14 tháng 6 năm 2018 lúc 2:35Jun 14, 2018 at 2:35

Hướng dẫn how do you split a line into two in python? - làm thế nào để bạn chia một dòng thành hai dòng trong python?

Từ các tài liệu Pythonajxs

str.split (sep = none, maxsplit = -1)2 gold badges17 silver badges29 bronze badges

5

Trả về một danh sách các từ trong chuỗi, sử dụng SEP làm chuỗi DELIMITER. Nếu MAXSplit được đưa ra, tại hầu hết các phân tách MaxSplit được thực hiện (do đó, danh sách sẽ có hầu hết các phần tử MaxSplit+1). Nếu MaxSplit không được chỉ định hoặc -1, thì không có giới hạn về số lượng phân tách (tất cả các phân tách có thể được thực hiện).

>>> s = 'abcd qwrre qwedsasd zxcwsacds'
>>> s.partition(' ')
('abcd', ' ', 'qwrre qwedsasd zxcwsacds')

ajxsajxsJun 14, 2018 at 2:38

Hướng dẫn how do you split a line into two in python? - làm thế nào để bạn chia một dòng thành hai dòng trong python?

3.1472 Huy hiệu vàng17 Huy hiệu bạc29 Huy hiệu đồngconstt

Bạn có thể sử dụng phương thức chuỗi tiêu chuẩn

'1 2 3'.split(maxsplit=1)
# ['1', '2 3']
6 tìm kiếm một dấu phân cách nhất định và trả về 3-tuple bao gồm phần chuỗi trước nó, chính bộ phân cách và phần sau nó.1 gold badge16 silver badges17 bronze badges

2

Đã trả lời ngày 14 tháng 6 năm 2018 lúc 2:38

s='abcd qwrre qwedsasd zxcwsacds'
>>> a, b = s.split(' ', 1)
>>> print(a, b)

consttconsttJun 14, 2018 at 2:43

Hướng dẫn how do you split a line into two in python? - làm thế nào để bạn chia một dòng thành hai dòng trong python?

2.2001 Huy hiệu vàng16 Huy hiệu bạc17 Huy hiệu đồng

s = 'abcd qwrre qwedsasd zxcwsacds'
s1 = s.split()[0]
s2 = ' '.join(s.split()[1:])
print(s1)
print(s2)

Output:

abcd
qwrre qwedsasd zxcwsacds

Or:

new_s = ''.join([' s ' if i.isspace() else i for i in s])
a,b = new_s.replace(' s','',1).split(' s ')
print(a)
print(b)

Output:

abcd
qwrre qwedsasd zxcwsacds

Bạn đang thiếu một tham số nữa trong sự phân chia của mình, số lần xuất hiện, thử điều này;

a,b = s.split(None,1)
print(a)
print(b)

Output:

abcd
qwrre qwedsasd zxcwsacds

Đã trả lời ngày 14 tháng 6 năm 2018 lúc 2:43Jun 14, 2018 at 2:41

Hướng dẫn how do you split a line into two in python? - làm thế nào để bạn chia một dòng thành hai dòng trong python?

U12-ForwardU12-ForwardU12-Forward

Thử cái này:13 gold badges79 silver badges99 bronze badges

Hoặc thậm chí chia tách tốt hơn cho các tab và newlines:

s = 'abcd efgh hijk'
a,b = s.split(' ', 1)
print(a) #abcd
print(b) #efgh hijk
1

Đã trả lời ngày 14 tháng 6 năm 2018 lúc 2:41

s = 'abcd efgh hijk'
a,b = s.split(' ', 1)
print(a) #abcd
print(b) #efgh hijk
2

Đã trả lời ngày 14 tháng 6 năm 2018 lúc 2:43Jun 14, 2018 at 2:41

JJ123JJ123JJ123

Thử cái này:1 gold badge4 silver badges15 bronze badges

Hoặc thậm chí chia tách tốt hơn cho các tab và newlines:

s = 'abcd efgh hijk'
a,b = s.split(' ', 1)
print(a) #abcd
print(b) #efgh hijk
3

Đã trả lời ngày 14 tháng 6 năm 2018 lúc 2:41

s = 'abcd efgh hijk'
a,b = s.split(' ', 1)
print(a) #abcd
print(b) #efgh hijk
4

3.

s = 'abcd efgh hijk'
a,b = s.split(' ', 1)
print(a) #abcd
print(b) #efgh hijk
5

66.7K13 Huy hiệu vàng79 Huy hiệu bạc99 Huy hiệu đồngJun 14, 2018 at 2:32

Bạn có thể giải quyết vấn đề này bằng cách sử dụng "biểu thức sao" của Python.Rajat Jain

"Đầu tiên" lấy phần tử đầu tiên của danh sách và " *thứ hai" lấy các phần tử còn lại.2 gold badges16 silver badges28 bronze badges

5611 huy hiệu vàng4 Huy hiệu bạc15 Huy hiệu đồng

s = 'abcd efgh hijk'
a,b = s.split(' ', 1)
print(a) #abcd
print(b) #efgh hijk
6

1. Bạn có thể phân chia chuỗi như thế này.

s = 'abcd efgh hijk'
a,b = s.split(' ', 1)
print(a) #abcd
print(b) #efgh hijk
7

2. Hoặc bạn có thể làm:

s = 'abcd efgh hijk'
a,b = s.split(' ', 1)
print(a) #abcd
print(b) #efgh hijk
8

Đã trả lời ngày 14 tháng 6 năm 2018 lúc 2:32Jun 14, 2018 at 11:49

Rajat Jainrajat Jainmroman

1.2632 huy hiệu vàng16 Huy hiệu bạc28 Huy hiệu đồng8 silver badges13 bronze badges

s = 'abcd efgh hijk'
a,b = s.split(' ', 1)
print(a) #abcd
print(b) #efgh hijk
9

Đã trả lời ngày 14 tháng 6 năm 2018 lúc 2:35Jun 14, 2018 at 2:35

Từ các tài liệu PythonMichael Swartz

str.split (sep = none, maxsplit = -1)2 gold badges15 silver badges26 bronze badges