回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我在以下文件中得到了如下.txt文件:</p>
<pre><code>Crista
Jame
7,3
2,0
Wiki
Rok
4,1
6,2
3,2
6,8
Pope
Lokk
5,2
0,1
3,1
Sam
Antony
4,3
9,1
</code></pre>
<p>我的代码用于查找所有名称并将其附加到<code>names[]</code>列表,以及查找所有数字并将其附加到<code>digits[]</code>列表(如果一行中有两行以上的数字,我以前在列表中不需要它们):</p>
<pre><code>import re
f=open('mine.txt')
names=[]
digits=[]
count=0
for line in f:
line = line.rstrip()
if re.search('^[a-zA-Z]', line):
name=line
names.append(name)
if re.findall('^\d{1}:\d{1}', line):
if count < 2 :
digit=line
digits.append(digit)
count += 1
elif line != "" :
count = 0
</code></pre>
<p>然后我配对匹配姓名和数字:</p>
<pre><code> my_pairs_dig=list()
while(digits):
a = digits.pop(0); b = digits.pop(0)
my_pairs_dig.append((a,b))
my_pairs_dig
my_pairs_names = list()
while(names):
a = names.pop(0); b = names.pop(0)
my_pairs_names.append((a,b))
my_pairs_names
outp=list(zip(my_pairs_names,my_pairs_dig))
</code></pre>
<p>得到了这个输出:</p>
<pre><code>[(('Crista', 'Jame'), ('7,3', '2,0')), (('Wiki', 'Rok'), ('4,1', '6,2')), (('Pope', 'Lokk'), ('5,2', '0,1')), (('Sam', 'Antony'),('4,3', '9,1'))]
</code></pre>
<p>但计划改变了,现在我想要的结果是:</p>
<pre><code>[(('Crista', 'Jame'), ('7,3', '2,0')), (('Wiki', 'Rok'), ('4,1', '6,2'), ('3,2', '6,8')), (('Pope', 'Lokk'), ('5,2', '0,1'), ('3,1')), (('Sam', 'Antony'),('4,3', '9,1'))]
</code></pre>
<p>如何重写代码以获得所需的结果</p>