2017-10-09 29 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']