2015-11-14 69 views
-3

例如:切割清单蟒蛇基地

my_string='ONETWOTHREEFOURFIVESIXSEVENEIGHTNINETEN' 

,以及如何使之成为

['ONE','TWO','THREE','FOUR','FIVE','SIX','SEVEN','EIGHT','NINE','TEN'] 

我怎样才能做到这一点有效,但不导入什么?

+0

的话总是数字或你不知道什么出来my_string的? – developer

+1

*每个单词的长度*如何存储? – GingerPlusPlus

+0

长度是如何给你的?您可能需要循环并解析字符串。最好是有效地工作,并询问代码审查堆栈的效率。如果你不能得到你尝试过的东西,那么回到这里,并在你的代码上提出一个具体的问题* – dstudeba

回答

1

假设你知道这可能工作的话长度(你需要更新lengths元组):

my_string='ONETWOTHREEFOURFIVESIXSEVENEIGHTNINETEN' 
lengths = (3, 3, 5, 4, 4, 3) 

words = [] 
start = 0 
for i in lengths: 
    words.append(my_string[start:start+i]) 
    start += i 

print(words) # ['ONE', 'TWO', 'THREE', 'FOUR', 'FIVE', 'SIX'] 
0

可以使用match()方法简单。但在此之前,你需要有与输出相匹配什么样的价值从my_string,如:

var my_string='ONETWOTHREEFOURFIVESIXSEVENEIGHTNINETEN'; 
var one = "ONE"; 
var array = []; 

if(string.match(one)) array.push(one); 
1
lengths = (3, 3, 5, 4, 4, 3) 

it = iter('ONETWOTHREEFOURFIVESIXSEVENEIGHTNINETEN') 

words = (''.join(next(it) for _ in range(length)) for length in lengths)