ниже код вызывает эту ошибку:Python: вставить в массивы на основе состояния
Traceback (most recent call last):
File "pulllist2.py", line 28, in <module>
list_sym[w] = symbol
IndexError: list assignment index out of range
То, что я пытаюсь достичь здесь является только добавить элемент в массив, если word1
и word2
находятся в строке security_name
. Я не знаю другого способа инициализации массивов.
#!/usr/bin/env python3
import glob
import os
import sys
import fnmatch
list_sym = []
list_name = []
w = 0
count = 0
word1 = 'Stock'
word2 = 'ETF'
# for loop that parses lines into appropriate variables
for file in glob.glob('./stocklist/*.txt'):
with open(file) as input:
for line in input:
# split line into variables.. trash will have no use
symbol, security_name, trash = line.split('|', 2)
if word1 in security_name or word2 in security_name:
# stores values in array
list_sym.append(1) ## initialize arrays
list_name.append(1)
list_sym[w] = symbol
list_name[w] = security_name
count += 1
w += 1
Зачем использовать параллельный список, если вы можете использовать словарь? И вы уже инициализировали свои массивы с самого начала. Кроме того, ваш цикл 'for' неверен. Вы не можете получить доступ к 'строке' в' файл-объекте'. – Zizouz212
Посмотрите прямо сейчас на словарь, спасибо за подсказку. –