2010-11-18 75 views
2

我有一長串字符串,我想將其拆分爲單個字符的列表。我想把這些空白也列入列表中。我該怎麼做呢?將字符串拆分爲python中的列表

+3

您不需要這樣做,因爲字符串已經是一系列字符。請提供一些你認爲你在做什麼的例子。 – 2010-11-18 15:45:30

+3

字符串和字符列表之間的一個區別是列表是可變的。這就是爲什麼你想要字符序列轉換爲該格式?在許多情況下,如果不是大多數其他方面,它們是非常相似的,並且可以在任一方面執行相同的操作(因此,讓它們獨立可能是有意義的)。 – martineau 2010-11-18 16:00:17

+0

@martineau:但是將「字符串作爲列表」進行變異並不是很有益,因爲創建新字符串通常非常有效。看到圍繞這個問題的一些實際情況而不是猜測會是有幫助的。我認爲這表示設計問題,但沒有事實,很難說出目的是什麼。 – 2010-11-18 18:31:39

回答

11

你可以這樣做:

list('foo') 

空間將被視爲列表成員(雖然不是組合在一起,但你沒有指定你需要的)

>>> list('foo') 
['f', 'o', 'o'] 
>>> list('f oo') 
['f', ' ', 'o', 'o'] 
+0

謝謝你的時間和你的答案。我想上面的答案可能會幫助我。 – Rameses 2010-11-18 17:47:05

+0

我想要做的是從另一個.txt文件中讀取包含空格的字符串。該文件僅包含「X」或「」(空格)。 – Rameses 2010-11-18 17:48:29

+0

我打算用它來構造一個二維地圖。由於二維數組顯然不被Python支持,所以我必須使用嵌套列表。 – Rameses 2010-11-18 17:50:28

0

這裏的字符串一些比較和字符串列表,以及另一種使字符串明確地出於樂趣,在現實生活中使用的列表(012):

b='foo of zoo' 
a= [c for c in b] 
a[0] = 'b' 
print 'Item assignment to list and join:',''.join(a) 

try: 
    b[0] = 'b' 
except TypeError: 
    print 'Not mutable string, need to slice:' 
    b= 'b'+b[1:] 

print b 
0

這不是評論的答案,原來的問題,但你的「我如何使用字典選項」(模擬二維數組)以上:

WIDTH = 5 
HEIGHT = 5 

# a dict to be used as a 2D array: 
grid = {} 

# initialize the grid to spaces 
for x in range(WIDTH): 
    for y in range(HEIGHT): 
     grid[ (x,y) ] = ' ' 

# drop a few Xs 
grid[ (1,1) ] = 'X' 
grid[ (3,2) ] = 'X' 
grid[ (0,4) ] = 'X' 

# iterate over the grid in raster order 
for x in range(WIDTH): 
    for y in range(HEIGHT): 
     if grid[ (x,y) ] == 'X': 
      print "X found at %d,%d"%(x,y) 

# iterate over the grid in arbitrary order, but once per cell 
count = 0 
for coord,contents in grid.iteritems(): 
    if contents == 'X': 
     count += 1 

print "found %d Xs"%(count) 

元組,是不可改變的,讓非常好的詞典鍵。網格中的單元格在分配給它們之前不存在,所以對於稀疏數組來說非常有效,如果這是您的事情。