2013-07-03 54 views
0

我需要拆分包含LC呼叫号码的字符串。在空间分割,我想把每个块分成它自己的变量。请参阅下面的示例LC呼叫号码:有没有办法将一个字符串拆分成不定数量的变量/字符串?

B2430 .R553 D813 1991 
CB351 .C58 1983 
D570.33 369th .N456 2009 
DA 685 .B65 B45 1995 

使用Python,有没有办法创建尽可能多的保持变量,因为有块?如果是,使用.split方法?

E.g.-

B2430 .R553 D813 1991 - var0= B2430, var1= .R553, var2= D813, var4= 1991 
CB351 .C58 1983 - var0= CB351, var1= .C58, var2= 1983 

预先感谢任何帮助。

+0

split()返回的列表已经是一个“保持变量”。在'var =“B2430 .R553 D813 1991”.split()',var [0]是'B2430',var [1]是'.R553'等等之后...给它们起这样的名字是否有好处作为'var0'? – tdelaney

回答

1

请改用字典。你不想做你解释什么:

s = "B2430 .R553 D813 1991 CB351 .C58 1983 D570.33 369th .N456 2009 DA 685 .B65 B45 1995" 
mydict = {'var{}'.format(i):j for i, j in enumerate(s.split())} 

mydict现在是:

{ 'VAR5': '.C58' , 'VAR4': 'CB351',' var7 ':'D570.33','var6':'1983','var1':'.R553','var0':'B2430','var3':'1991','var2':'D813',' var9':'.N456','var8':'369th','var15':'1995','var14':'B45','var11':'DA','var10':'2009','var13 ':'.B65','var12':'685'}

但是,如果您必须:

for i, j in enumerate(s.split()): 
    globals()['var{}'.format(i)] = j 
+2

你可以使用'enumerate(s.split())';) –

+0

@AshwiniChaudhary谢谢! – TerryA

+1

更改'local()'的结果未定义。它可能不会达到你所期望的,例如在几种情况下,它不会改变当前局部变量作用域中的任何内容。 – Alfe

1

在Python 3,你可以在列表中至少创建一组给定的变量,并收集其他地区:

a, b, c, *rest = range(10) 

a, b, c, rest现在将(0, 1, 2, [3, 4, 5, 6, 7, 8, 9])

相关问题