我的数据集有超过 10,000 个项目,为什么这没有反映在我的列表中?

  • 本文关键字:列表 项目 数据集 python list
  • 更新时间 :
  • 英文 :

# 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 个。我正在为学校期末考试写这篇文章,我似乎无法弄清楚问题出在哪里。

您正在检查列表的索引并将其附加到世代。您需要调整代码以引用和附加年龄本身:

#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
  • 您可以在文件上使用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

最新更新