2017-10-09 28 views
0

比方說,我有一個列表:分割字符串列表到他們的單個字符的Python

list = ['foo', 'bar', 'bak'] 

我想要拆分這些字符串放到自己的角色,所以我可以將值分配給每個字符(IE F = 5, o = 15,依此類推)。

我該如何分解這些列表? 我正在考慮將每個元素轉換爲自己的列表,並將每個元素稱爲該列表中的一個項目,但我不知道如何去做。

+4

'newlist = [列表(項目),用於列表項]' – Sraw

+1

@Sraw ...因爲提問者重寫的'list'類型的定義具有可變也愚蠢地稱爲「名單」,你的建議可能不會像預期的那樣工作。 – donkopotamus

+0

@ donkopotamus是的,你是對的... – Sraw

回答

2

字符串是可迭代在Python,所以你可以通過他們循環是這樣的:

list = ['foo', 'bar', 'bak'] 

for item in list: 
    for character in item: 
     print(character) 
+1

這在Python中並不是真的,但你通常可以*假裝*他們無論如何都是並且使用它們(如你的示例代碼)。如果一個字符串是一個列表,你可以用''hello「.extend(」world!「)'。與一些像Haskell這樣的語言相比,它實際上只是一個類型別名'type String = [Char]' –

+0

這是有效的!謝謝!你有建議區分不同的字符串彼此? – Derp

+1

字符串不是**「技術列表」。他們[iterable](https://docs.python。org/3/library/collections.abc.html#collections.abc.Iterable),這是不同的。 – donkopotamus

0

嘗試做了一系列功能,每個字

list = ['foo','bar','bak'] 

for i in range (len(list)): 
    for t in range(len(list[i])): 
     print(list[i][t]) 

它會打印每個項目。 如果你想創建的每個字母列表, 嘗試

list = ['foo','bar','bak'] 
letters = [] 

for i in range (len(list)): 
    for t in range(len(list[i])): 
     letters.append(list[i][t]) 
+1

eww。不要在Python中這樣做,這非常反面。每當你在範圍我做'(LEN(富)):富[I]':重寫爲'爲富subfoo:subfoo' –

+0

使用'itertools.chain'! – donkopotamus

+0

(或在這種情況下'chain.from_iterable') –

0
import re 
listr = ['foo', 'bar', 'bak'] 
mylist="".join(mylist) 
result=re.findall(r'\w',mylist) 
result 

['f', 'o', 'o', 'b', 'a', 'r', 'b', 'a', 'k'] 
+0

失敗如果任何'組件串listr'包含'\ W'字符(並且是不必要的即使他們不) –

0

如果這是你要找的內容在這裏你去:

listItems = ['foo', 'bar', 'bak'] 
listLetter = [] 
myDictionary = {} 

for item in listItems: 
    for letter in item: 
     listLetter.append(letter) 

myDictionary['f'] = 5 

print myDictionary 
0

也許這就是你想要轉換什麼字符列表:

l = ['foo', 'bar', 'bak'] 

list(''.join(l)) 
-1

將整個列表加入到每個字符

my_list = [ '富', '酒吧', '窺知']

結果=列表( ''。加入(my_list))

結果

[ 'F',' O」, '0', 'b', 'A', 'R', 'b', 'A', 'K']

現在就可以通過結果迭代,以將值分配給每個字符

0

您可以使用單線解決方案:

list1 = ['foo', 'bar', 'bak'] 
print([j for i in list1 for j in i]) 

結果:

['f', 'o', 'o', 'b', 'a', 'r', 'b', 'a', 'k']