230
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Có bất kỳ chức năng nào trong Python mà tôi có thể sử dụng để chèn một giá trị ở một vị trí nhất định của một chuỗi không?
Một cái gì đó như thế này:
>>> s[:4] + '-' + s[4:]
'3558-79ACB6'
3 Sau đó ở vị trí 4 Thêm >>> s[:4] + '-' + s[4:]
'3558-79ACB6'
4 để trở thành >>> s[:4] + '-' + s[4:]
'3558-79ACB6'
5
Martineau
Huy hiệu vàng 116K2525 gold badges160 silver badges285 bronze badges
Đã hỏi ngày 10 tháng 3 năm 2011 lúc 1:32Mar 10, 2011 at 1:32
Michel Andrademichel AndradeMichel Andrade
3,8175 huy hiệu vàng26 Huy hiệu bạc28 Huy hiệu đồng5 gold badges26 silver badges28 bronze badges
0
Không. Chuỗi Python là bất biến.
>>> s='355879ACB6'
>>> s[4:4] = '-'
Traceback [most recent call last]:
File "", line 1, in
TypeError: 'str' object does not support item assignment
Tuy nhiên, có thể tạo một chuỗi mới có ký tự được chèn:
>>> s[:4] + '-' + s[4:]
'3558-79ACB6'
Đã trả lời ngày 10 tháng 3 năm 2011 lúc 1:34Mar 10, 2011 at 1:34
2
Điều này có vẻ rất dễ dàng:
>>> hash = "355879ACB6"
>>> hash = hash[:4] + '-' + hash[4:]
>>> print hash
3558-79ACB6
Tuy nhiên, nếu bạn thích một cái gì đó như một chức năng làm như thế này:
def insert_dash[string, index]:
return string[:index] + '-' + string[index:]
print insert_dash["355879ACB6", 5]
Đã trả lời ngày 10 tháng 3 năm 2011 lúc 1:39Mar 10, 2011 at 1:39
2
Vì các chuỗi là một cách khác để làm điều này là biến chuỗi thành một danh sách, sau đó có thể được lập chỉ mục và sửa đổi mà không cần bất kỳ thủ thuật cắt nào. Tuy nhiên, để đưa danh sách trở lại chuỗi bạn phải sử dụng
>>> s[:4] + '-' + s[4:]
'3558-79ACB6'
6 bằng cách sử dụng chuỗi trống.>>> hash = '355879ACB6'
>>> hashlist = list[hash]
>>> hashlist.insert[4, '-']
>>> ''.join[hashlist]
'3558-79ACB6'
Tôi không chắc làm thế nào điều này so sánh với hiệu suất, nhưng tôi cảm thấy nó dễ dàng hơn so với các giải pháp khác. ;-]
Đã trả lời ngày 10 tháng 3 năm 2011 lúc 1:48Mar 10, 2011 at 1:48
Jathanismjathanismjathanism
32,4K9 Huy hiệu vàng68 Huy hiệu bạc86 Huy hiệu Đồng9 gold badges68 silver badges86 bronze badges
0
Chức năng đơn giản để thực hiện điều này:
def insert_str[string, str_to_insert, index]:
return string[:index] + str_to_insert + string[index:]
Đã trả lời ngày 16 tháng 3 năm 2017 lúc 10:26Mar 16, 2017 at 10:26
Vatsugvatsugvatsug
5245 Huy hiệu bạc15 Huy hiệu Đồng5 silver badges15 bronze badges
Python 3.6+ bằng cách sử dụng F-String:
mys = '1362511338314'
f"{mys[:10]}_{mys[10:]}"
cho
'1362511338_314'
AMAIN
1.55812 Huy hiệu bạc19 Huy hiệu đồng12 silver badges19 bronze badges
Đã trả lời ngày 24 tháng 4 năm 2020 lúc 19:14Apr 24, 2020 at 19:14
DarinpdarinpDarinP
1251 Huy hiệu bạc2 Huy hiệu đồng1 silver badge2 bronze badges
1
Tôi đã thực hiện một phương pháp rất hữu ích để thêm một chuỗi ở một vị trí nhất định trong Python:method to add a string in a certain position in Python:
def insertChar[mystring, position, chartoinsert ]:
longi = len[mystring]
mystring = mystring[:position] + chartoinsert + mystring[position:]
return mystring
Ví dụ:
a = "Jorgesys was here!"
def insertChar[mystring, position, chartoinsert ]:
longi = len[mystring]
mystring = mystring[:position] + chartoinsert + mystring[position:]
return mystring
#Inserting some characters with a defined position:
print[insertChar[a,0, '-']]
print[insertChar[a,9, '@']]
print[insertChar[a,14, '%']]
Chúng tôi sẽ có một đầu ra:
>>> s[:4] + '-' + s[4:]
'3558-79ACB6'
0Đã trả lời ngày 4 tháng 2 năm 2016 lúc 15:13Feb 4, 2016 at 15:13
JorgesysjorgesysJorgesys
121K23 Huy hiệu vàng322 Huy hiệu bạc261 Huy hiệu Đồng23 gold badges322 silver badges261 bronze badges
3
Tôi nghĩ rằng các câu trả lời trên là tốt, nhưng tôi sẽ giải thích rằng có một số tác dụng phụ bất ngờ nhưng tốt cho họ ...
>>> s[:4] + '-' + s[4:]
'3558-79ACB6'
1Nếu chỉ mục POS_I rất nhỏ [quá âm], chuỗi chèn sẽ được chuẩn bị. Nếu quá lâu, chuỗi chèn được nối thêm. Nếu POS_I nằm giữa -Len [String_s] và +Len [String_s] - 1, chuỗi chèn sẽ được chèn vào đúng vị trí.
Đã trả lời ngày 7 tháng 2 năm 2020 lúc 1:57Feb 7, 2020 at 1:57
Gary02127Gary02127Gary02127
4.7811 Huy hiệu vàng23 Huy hiệu bạc28 Huy hiệu đồng1 gold badge23 silver badges28 bronze badges
Nếu bạn cần chèn một char đã cho tại nhiều vị trí, luôn luôn xem xét việc tạo một danh sách các chuỗi con và sau đó sử dụng
>>> s[:4] + '-' + s[4:]
'3558-79ACB6'
6 thay vì >>> s[:4] + '-' + s[4:]
'3558-79ACB6'
8 để kết hợp chuỗi. Điều này là do, vì Python >>> s[:4] + '-' + s[4:]
'3558-79ACB6'
9 có thể thay đổi, >>> s[:4] + '-' + s[4:]
'3558-79ACB6'
8 nối chuỗi luôn luôn thêm một chi phí thích nghi. Thông tin thêm có thể được tìm thấy ở đây.Đã trả lời ngày 25 tháng 7 lúc 22:06Jul 25 at 22:06
WenukawenukaWenuka
7312 Huy hiệu vàng8 Huy hiệu bạc20 Huy hiệu đồng2 gold badges8 silver badges20 bronze badges
Nếu bạn muốn nhiều chèn
>>> s[:4] + '-' + s[4:]
'3558-79ACB6'
2Đã trả lời ngày 31 tháng 5 năm 2015 lúc 15:27May 31, 2015 at 15:27
Enomadenomadenomad
9938 Huy hiệu bạc16 Huy hiệu Đồng8 silver badges16 bronze badges
1