如何附加到多维lis

2024-09-30 12:22:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我该怎么做?我拉了一个int值的列表,并试图在列表中添加年份。你知道吗

dataList = []
read = open("USPopulation.txt", 'r')
population = read.readline().rstrip('\n')

year = 1950
i = 0
maxPopulation = 0
minPopulation = sys.maxsize
avgPopulation = 0
total = 0
maxPop_Year = 0
minPop_Year = 0

while population != "":
        year += i
        dataList[i].append(year)
        dataList[i].append(population)
        i += 1
        population = read.readline().rstrip('\n')

错误

line 8, in <module>
    dataList[i].append(year)
IndexError: list index out of range

样本输入

151868
153982
156393
158956
161884
165069
168088
171187
174149
177135
179979
182992
185771
188483

在我处理信息输出之前,我试着先运行这个程序。但我要做的是处理这些信息,找出人口的最大数量和最小数量,以及年与年之间的平均数,并显示这些信息。你知道吗

    for i in range(len(dataList)):
    if dataList[i][1] > maxPopulation:
        maxPopulation = dataList[i][1]
        macPop_Year = dataList[i][0]
    if dataList[i][1] < minPopulation:
        minPopulation = dataList[i][1]
        minPop_Year = dataList[i][0]        

print("The year", maxPop_Year, "had the most population with", maxPopulation)
print("The year", minPop_Year, "had the least population with", minPopulation)

错误

if dataList[i][1] > maxPopulation:
TypeError: '>' not supported between instances of 'str' and 'int'

Tags: 信息列表readreadlineifyearintpopulation
2条回答
dataList = []
read = open("USPopulation.txt", 'r')
population = read.readline().rstrip('\n')
year = 1950
i = 0
while population != "":
    year += i
    #An empty list needs to be append to add items
    #fix begin
    dataList.append([])
    #fix end
    dataList[i].append(year)
    dataList[i].append(population)
    i += 1
    population = read.readline().rstrip('\n')

min、max和avg的完整代码(但使用内联列表而不是文件读取器) 应该使用哈希表或关联数组,而不是列表。 声明year += i也是不正确的,因为它将使year以一种意想不到的方式增加1950年、1951年、1953年、1956年、1960年。。。你知道吗

dataList = {}
input = [151868,153982,156393,158956,161884,165069,168088,171187,174149,177135,179979,182992,185771, 188483]
year = 1949
min_popl = -1
max_popl = -1
minyr = -1
maxyr = -1
total_popl = 0
i = 0
for popl in input:
    year += 1
    i += 1
    dataList[year] = popl

    total_popl += popl

    if min_popl == -1 or popl < min_popl:
      min_popl = popl
      minyr = year

    if popl > max_popl:
      max_popl = popl
      maxyr = year

print("Minimum popl [{}] in year [{}]".format(min_popl, minyr))
print("Maximum popl [{}] in year [{}]".format(max_popl, maxyr))
print("Average popl [{}]".format(total_popl/i))

输出上述-

Minimum popl [151868] in year [1950]
Maximum popl [188483] in year [1963]
Average popl [169709.7142857143]

相关问题 更多 >

    热门问题