擅长:python、mysql、java
<p>问题是,给您错误消息“TypeError:expected string或bytes like object”只存在于第二种方法中。
这是因为您将“subsectors”而不是“string”传递给“li.sub”</p>
<p>因此,它应该是:</p>
<pre><code>li = re.compile(r'(?<=[a-z])(?=[A-Z])')
strings = [li.sub(' ', string) for string in subsectors]
</code></pre>
<p>完整代码:</p>
<pre><code>import re
subsectors = ['AntibodiesImmunotherapy', 'ProteinsImmunotherapy', 'Wound care', 'Cell therapyImmunotherapy']
strings = [' '.join(re.findall('[A-Z][^A-Z]*', s)) for s in subsectors]
print(strings)
li = re.compile(r'(?<=[a-z])(?=[A-Z])')
strings = [li.sub(' ', string) for string in subsectors]
print(strings)
strings=[]
for i in subsectors:
strings.append(" ".join(re.findall('[A-Z][^A-Z]*', i)))
print(strings)
</code></pre>