私はこのコード行を持っています。それはテキスト行の英語の単語 (この場合は射手と弓兵) をリストに入れ、単語数の整数 (この場合は 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]
、自分で修正できるはずです