2010-04-10 46 views
1

我想創建一個字符串S,它可以作爲一個數組使用,因爲在每個元素中可以單獨使用它們作爲數組。如何創建一個可以在python中用作數組的字符串?

+1

您應該添加更多詳細信息。 Python字符串已經像列表一樣工作了。你究竟想要什麼?提供一個例子,一個背景,一個問題,以便理解你在做什麼。 – 2010-04-10 07:32:47

回答

5

那怎麼Python中已經工作:

>>> a = "abcd" 
>>> a[0] 
'a' 
>>> a[2] 
'c' 

但是要記住這是隻讀訪問。

3

您可以通過使用list字符串轉換爲字符的列表,並去其他方式使用join

>>> s = 'Hello, world!' 
>>> l = list(s) 
>>> l[7] = 'f' 
>>> ''.join(l) 
'Hello, forld!' 
+0

但我總是得到列表索引錯誤。我想定義字符串在C++中,其中字符串S,給我一個字符串S,可以用作字符數組。 – Hick 2010-04-10 07:14:05

+1

@mekasperasky:你不能修改原始字符串,你只能修改列表然後將其轉換回字符串。字符串在Python中是不可變的。修改字符串中的一個字符可能是一項昂貴的操作,因爲您必須複製整個字符串。 – 2010-04-10 07:15:53

+2

如果您正在獲取索引錯誤,那麼您可能試圖訪問字符串末尾的字符 - 無論您使用的是字符串還是列表,都會得到相同的錯誤。這是你的代碼中的一個bug,而不是Python的字符串或列表的問題。向我們展示代碼! – 2010-04-10 07:26:48

0

我有點驚訝,似乎沒有人爲Python編寫一個流行的「MutableString」包裝類。我想你會希望將它存儲爲一個列表的字符串,通過''.join()返回它並實現一套方法,包括字符串(startswith,endswith,isalpha及其所有的一切等等)和那些列表。

對於在列表中運行的簡單操作並根據需要使用''.join()即可。然而,對於類似如下的東西:'foobar'.replace('oba', 'amca')當您使用列表表示變得醜陋。 (that=list(''.join(that).replace(something, it)) ...或類似的東西)。列表和字符串表示之間的常量編組在視覺上分散注意力。

+1

標準庫中有[UserString.MutableString](http://docs.python.org/library/userdict.html#UserString.MutableString),但它自2.6(3.0中刪除)以來速度較慢且不推薦使用。 – 2010-04-10 19:45:11

+0

顯然在2.6中添加了bytearray(可變字節序列):https://docs.python.org/2/library/functions.html?highlight = bytearray#bytearray – 2016-11-28 10:19:03

相關問題