如果数字后面有一个特殊字符,而在特殊字符之后没有任何字符,则也将特殊字符计算在内。
当前输出:
109* = 2
405,406+,407 = 4
20++1=3
预期输出:
109* = 1
405,406+,407 = 3
20++1=2
代码1:
data['total_books']=data.books.str.count('[!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~]').add(1)
code2:
data.books.str.split(r'[!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~]').str.len()
这两个代码都产生相同的输出。
任何可能的解决方案。
答案 0 :(得分:1)
从下面一行
data.books.str.split(r'[!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~]').str.len()
我删除了运算符(等于)=
data.books.str.split(r'[!"#$%&\'()*+,-./:;<>?@[\\]^_`{|}~]').str.len()
结果可能与预期相同。
答案 1 :(得分:-2)
str1 = '109*'
str2 = '405,406+,407'
str3 = '20++1'
str_ls = re.split(r'[!"#$%&\'()*+,-./:;<=>?@\[\]^_`{|}]', str3)
str_ls = [x for x in str_ls if len(x)>0]
)
len(str_ls)
2