У меня есть эта строка кода, она помещает английские слова в текстовую строку (в данном случае лучник и лук) в список и использует целое число из числа слов (02 в этом случае), чтобы выяснить, сколько слов в строкеОбъяснение функции списка в python
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 out как:
['09640897', '~', '0000']
Это правильное количество записей, только неправильные. Если кто-то может объяснить word = L[4:4 + 2 * int(L[3]):2]
я должен быть в состоянии исправить это сам
'S = after_at.split() [0: 0 +4 * K: 4]' это работает сейчас! отлично – Johnnerz