我有这行代码,它将文本行中的英文单词(在本例中为弓箭手和弓箭手)放入列表中,并使用单词数的整数(在本例中为 02)来计算有多少单词在线
line = 09824747 18 n 02 archer 0 bowman 0 003 @ 09640897 n 0000 ~ 10290474 n 0000 ~ 10718145 n 0000
L = line.split()
word = L[4:4 + 2 * int(L[3]):2]
print(word)
这打印出来['archer', 'bowman']
我想以另一种方式使用将单词分配给列表的代码行,我想将出现在“@”符号之后的 8 位数字分配给不同的列表。
我已经获得了获取文件中 8 位数字数量的代码以及我迄今为止的努力。(本例中8位数字的个数为003)
pointer_num = re.findall(r'\b\d{3}\b', line)
K = int(pointer_num[0])
before_at, after_at = line.split('@')
S = after_at.split()[0:0 +3 * K:3]
S 应该是 8 位数字的列表。尽管此代码将 S 打印为:
['09640897', '~', '0000']
这是正确的条目数,只是错误的条目数。如果有人可以解释word = L[4:4 + 2 * int(L[3]):2]
我应该可以自己纠正