<h2>更新</h2>
<p>代码引发错误的原因是,您需要将字符的<em>索引</em>作为片段传递,并且字符本身:</p>
<pre><code>text2 = ['Brandon:5', 'Patrick:18.9', 'Brandon:xyz', 'Jack:', 'Sarah:825', 'Jack:45', 'Brandon:10', 'James:3.25', 'James:125.62', 'Sarah:2.43', 'Brandon:100.5']
sep = ':'
text3 = [w[:w.index(sep)] for w in text2]
text4 = [w[w.index(sep):] for w in text2]
</code></pre>
<hr/>
<p><em>Mark Meyer的解决方案是最优的,但对初学者不太友好</em></p>
<p>以下是一个逐步的过程:</p>
<ol>
<li>我们有以下清单:</li>
</ol>
<pre><code>['Brandon:5', 'Patrick:18.9', 'Brandon:xyz', 'Jack:', 'Sarah:825', 'Jack:45', 'Brandon:10', 'James:3.25', 'James:125.62', 'Sarah:2.43', 'Brandon:100.5']
</code></pre>
<p>让我们将其分配给一个变量,以便稍后在程序中访问它:</p>
<pre><code>lst = ['Brandon:5', 'Patrick:18.9', 'Brandon:xyz', 'Jack:', 'Sarah:825', 'Jack:45', 'Brandon:10', 'James:3.25', 'James:125.62', 'Sarah:2.43', 'Brandon:100.5']
</code></pre>
<ol start=“2”>
<li>定义两个列表<code>names</code>和<code>numbers</code>,以便以后存储检索到的名称和数字</李>
</ol>
<pre><code>names = []
numbers = []
</code></pre>
<ol start=“3”>
<li>遍历<code>lst</code>列表,并在<code>":"</code>处拆分每个字符串:</li>
</ol>
<pre><code>for s in lst:
s.split(":")
</code></pre>
<ol start=“4”>
<li>现在,将<code>s.split(":")</code>列表中的两个值分配到两个变量<code>name</code>和<code>number</code>:</li>
</ol>
<pre><code>name, number = s.split(":")
</code></pre>
<ol start=“5”>
<li>最后,将字符串附加到Earlier创建的两个列表中:</li>
</ol>
<pre><code>names.append(name)
numbers.append(number)
</code></pre>
<p>总共:</p>
<pre><code>lst = ['Brandon:5', 'Patrick:18.9', 'Brandon:xyz', 'Jack:', 'Sarah:825', 'Jack:45', 'Brandon:10', 'James:3.25', 'James:125.62', 'Sarah:2.43', 'Brandon:100.5']
names = []
numbers = []
for s in lst:
name, number = s.split(":")
names.append(name)
numbers.append(number)
print(names)
print(numbers)
</code></pre>
<p>输出:</p>
<pre><code>['Brandon', 'Patrick', 'Brandon', 'Jack', 'Sarah', 'Jack', 'Brandon', 'James', 'James', 'Sarah', 'Brandon']
['5', '18.9', 'xyz', '', '825', '45', '10', '3.25', '125.62', '2.43', '100.5']
</code></pre>