拆分和计算Python字符串

时间:2014-02-28 16:51:03

标签: python arcpy

所以我有一个字符串:

stringvar = "one;two;three;four"

我想把它变成:

stringcount = 4
string1 = "one"
string2 = "two"
string3 = "three"
string4 = "four"

有时候会有更多更少,当然价值可能是什么。我希望在';'处拆分一个字符串分成变量,然后有另一个给出变量数的变量。

感谢

5 个答案:

答案 0 :(得分:5)

NEVER DO THIS.

好的,既然我们已经开始了,那么你就是这样做的。

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]