所以我有一个字符串:
stringvar = "one;two;three;four"
我想把它变成:
stringcount = 4
string1 = "one"
string2 = "two"
string3 = "three"
string4 = "four"
有时候会有更多更少,当然价值可能是什么。我希望在';'处拆分一个字符串分成变量,然后有另一个给出变量数的变量。
感谢
答案 0 :(得分:5)
好的,既然我们已经开始了,那么你就是这样做的。
stringvar = "one;two;three;four"
lst = stringvar.split(";")
stringcount = len(lst)
for idx, value in enumerate(lst):
globals()["string"+str(idx+1)] = value
# This is the ugliest code I've ever had to write
# please never do this. Please never ever do this.
globals()
返回一个字典,其中包含全局范围内的每个变量,变量名称为键的字符串,值为值。
例如:
>>> foo = "bar"
>>> baz = "eggs"
>>> spam = "have fun stormin' the castle"
>>> globals()
{'baz': 'eggs', '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__builtins__': <module 'builtins' (built-in)>, 'foo': 'bar', '__doc__': None, '__package__': None, 'spam': "have fun stormin' the castle", '__name__': '__main__'}
您可以引用此词典以按字符串名称添加新变量(globals()['a'] = 'b'
将变量a
设置为等于"b"
),但这通常是一件非常糟糕的事情。想想您如何使用这些数据!您必须将新变量名称绑定到ANOTHER变量,然后每次在globals()[NEW_VARIABLE]
内使用它!我们使用list
代替吗?
答案 1 :(得分:1)
您应该使用split
方法
s = 'stringvar = "one;two,three;four"'
stringvar = s.split('=')[-1].strip()
L=stringvar.split(';')
stringcount=len(L)
答案 2 :(得分:1)
stringvar_list= stringvar.split(';')
string_count = len(stringvar_list)
stringvar_list
将拥有单独的字符串
答案 3 :(得分:1)
newstr = stringvar.split(";")
n = len(newstr)
print "stringcount = " + str(n)
for i in range(n):
print "string"+i+"="+str(newstr[i])
答案 4 :(得分:1)
stringvar = "one;two,three;four"
l = stringvar.split(';')
stringcount, string1, string2, string3, string4 = len(l), l[0], l[1], l[2], l[3]