python中的C的strncpy()是否有任何等價的函數? 我想從第一個字符串替換第二個字符串中的6個字符。 '美妙'應該被'美麗'取代。以下是C中的代碼。python中是否有任何strncpy()等價函數?
str1 = "wonderful";
str2 = "beautiful";
strncpy(str2,str1,6);
我想在python中這樣做。
在此先感謝。
python中的C的strncpy()是否有任何等價的函數? 我想從第一個字符串替換第二個字符串中的6個字符。 '美妙'應該被'美麗'取代。以下是C中的代碼。python中是否有任何strncpy()等價函數?
str1 = "wonderful";
str2 = "beautiful";
strncpy(str2,str1,6);
我想在python中這樣做。
在此先感謝。
你不要在Python中複製字符串,因爲它們是不可變的。您只需重新分配是這樣的:
str2 = str1[:6] + str2[6:]
你也有你的目標和源字符串混淆。
我想從第一串
str2 = str1[:6] + str2[6:]
-0。如果不提及字符串的不變性,我不認爲這個答案是完全準確的。 –
Python中的字符串是不可改變的更換第二個字符串中6個字符,所以像你在其他語言中你無法修改它們。你必須創建一個新的字符串並重新分配str2
:
str2 = str1[:6] + str2[6:]
您可以使用bytearray
如果你想就地修改(正常的字符串是不可改變的)
>>> str1 = bytearray("wonderful")
>>> str2 = bytearray("beautiful")
for i in xrange(6):
str2[i] = str1[i]
...
>>> print str2
wonderful
功能:
def strncpy(a, b, ind1, ind2):
for i in xrange(ind1-1, ind2):
a[i] = b[i]
...
>>> str1 = bytearray("wonderful")
>>> str2 = bytearray("beautiful")
>>> strncpy(str2, str1, 1, 6)
>>> print str2
wonderful
字節數組也支持切片:'str2 [:6] = str1 [:6]' – Blender
python中的字符串是不可變的。 – zsong