分割并计数一个Python字符串

1 投票
5 回答
52437 浏览
提问于 2025-04-17 20:22

我有一个字符串:

stringvar = "one;two;three;four"

我想把它变成:

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

有时候字符串的内容会多,有时候会少,当然这些值也可以是任何东西。我想把字符串按照';'这个符号分开,分成几个不同的变量,然后再有一个变量来表示这些变量的数量。

谢谢!

5 个回答

1

在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。比如,有人可能会在使用某个特定的功能时,发现它并没有按照预期工作。这种情况可能是因为设置不正确,或者是使用的方法不对。

解决这类问题的第一步是仔细检查你的代码,确保每一行都没有错误。你可以尝试逐步运行代码,看看在哪一步出现了问题。这样可以帮助你找到错误的根源。

另外,查阅相关的文档或社区讨论也是个不错的主意。很多时候,别人也遇到过类似的问题,他们的解决方案可能会对你有帮助。

总之,遇到问题时不要慌张,保持冷静,逐步排查,通常都能找到解决办法。

stringvar = "one;two,three;four"
l = stringvar.split(';')
stringcount, string1, string2, string3, string4 = len(l), l[0], l[1], l[2], l[3]
1

你应该使用 split 方法

s = 'stringvar = "one;two,three;four"'
stringvar = s.split('=')[-1].strip()
L=stringvar.split(';')
stringcount=len(L)
2
newstr = stringvar.split(";")
n = len(newstr)
print "stringcount = " + str(n)
for i in range(n):
    print "string"+i+"="+str(newstr[i])

当然可以!请把你想要翻译的内容发给我,我会帮你把它变得简单易懂。

3
stringvar_list= stringvar.split(';')
string_count = len(stringvar_list)

stringvar_list 这个变量会包含每一个单独的字符串

10

千万不要这样做。

好了,既然这个问题已经说清楚了,接下来我们来看看怎么做。

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"),但这样做通常是个很糟糕的主意。想想你怎么能使用这些数据!你得把新变量名绑定到另一个变量上,然后每次都要在 globals()[NEW_VARIABLE] 里使用它!我们不如用一个 list 来代替,这样更简单,对吧?

撰写回答