В моем наборе данных более 10000 элементов, почему это не отражено в моих списках? - PullRequest
0 голосов
/ 16 декабря 2018
# open, read, close output.txt (smaller version)
f = open("10thousand.txt", "r")
data = f.read()
f.close

# clean the data
data = data.replace('\n', '\t')
data = data.split('\t')

ageList = []

# append the data (ages) into the list
for i in data:
    ageList.append(i)

data.sort()

# print(ageList)

gen1 = []
gen2 = []
gen3 = []
gen4 = []
gen5 = []

# cycle through, add ages to our generation groups
for i in range(len(ageList)):
    if i >= 16 and i < 18:
        gen1.append(i)
    elif i > 17 and i < 34:
        gen2.append(i)
    elif i > 33 and i < 54:
        gen3.append(i)
    elif i > 53 and i < 73:
        gen4.append(i)
    elif i > 72 and i <= 101:
        gen5.append(i)
    else:
        pass

В моих списках отображаются только 10-30 точек данных в каждом списке, хотя в моем входном файле их более 10 000.Я пишу это для школьного финала, и я не могу понять, где проблема.

Ответы [ 2 ]

0 голосов
/ 16 декабря 2018
  • Вы можете использовать with для файла.Таким образом, он автоматически закроется.

  • Начните с чтения чисел в списке и преобразования в int.

  • .split()разбивает на все пробельные символы, поэтому нет необходимости преобразовывать один \n в другой \t.

  • Вы можете выполнять итерации по списку вместо циклического диапазона.

Примерно так.

with open("10thousand.txt", "r") as numbers:
    ageList = [int(n) for n in numbers.split()]

gen1 = []
gen2 = []
gen3 = []
gen4 = []
gen5 = []
for age in ageList:
    if age >= 16 and age < 18:
        gen1.append(age)
    elif age > 17 and age < 34:
        gen2.append(age)
    elif age > 33 and age < 54:
        gen3.append(age)
    elif age > 53 and age < 73:
        gen4.append(age)
    elif age > 72 and age <= 101:
        gen5.append(age)
    else:
        pass
0 голосов
/ 16 декабря 2018

Вы проверяете и добавляете индексы списка в поколения.Вы должны настроить свой код для ссылки и добавить сами возрасты:

#append the data (ages) into the list
for i in data:
    ageList.append(int(i))

...

#cycle through, add ages to our generation groups
for age in ageList:
    if age >= 16 and age < 18:
        gen1.append(age)
    elif age > 17 and age < 34:
        gen2.append(age)
    elif age > 33 and age < 54:
        gen3.append(age)
    elif age > 53 and age < 73:
        gen4.append(age)
    elif age > 72 and age <= 101:
        gen5.append(age)
    else:
        pass
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...