Python 遍历列表以添加值
我试图在Python中向列表中添加一个Python 遍历列表以添加值,python,python-2.7,python-3.x,Python,Python 2.7,Python 3.x,我试图在Python中向列表中添加一个txt文件,然后在列表中迭代查找数字并将它们全部相加 示例文本: Alabama 4780 Alaska 710 Arizona 6392 Arkansas 2916 California 37254 Colorado 5029 ['Alabama', '4780', 'Alaska', '710', 'Arizona', '6392', 'Arkansas', '2916', 'California', '37254', 'Colorado', '502
txt
文件,然后在列表中迭代查找数字并将它们全部相加
示例文本:
Alabama 4780
Alaska 710
Arizona 6392
Arkansas 2916
California 37254
Colorado 5029
['Alabama', '4780', 'Alaska', '710', 'Arizona', '6392', 'Arkansas', '2916', 'California', '37254', 'Colorado', '5029']
total population: 57621
预期输出:
Alabama 4780
Alaska 710
Arizona 6392
Arkansas 2916
California 37254
Colorado 5029
['Alabama', '4780', 'Alaska', '710', 'Arizona', '6392', 'Arkansas', '2916', 'California', '37254', 'Colorado', '5029']
total population: 57621
我可以将它们添加到列表中,但我无法找到所有数字的总数。
理想情况下,我希望它都在一个函数中
def totalpoplst(filename):
lst = []
with open(filename) as f:
for line in f:
lst += line.strip().split(' ')
return print(lst)
totalpop()
def totalpop(filename):
total_pop = 0
for i in lst:
if i.isdigit():
total_pop = total_pop + i.isdigit()
return print(total_pop)
def main():
filename = input("Please enter the file's name: ")
totalpoplst(filename)
main()
您需要将作为字符串提供的填充转换为数字。要执行此操作,请将行更改为:
total_pop = total_pop + i.isdigit()
全文如下:
total_pop = total_pop + int(i)
对于键值数据结构,最好使用
dict
,而不是列表
>>> population = {}
>>> total = 0
>>> with open('list.txt', 'r') as handle:
... for line in handle:
... state, sep, pop = line.partition(' ')
... population[state] = int(pop)
... total += population[state]
...
>>> total
57081
要使用的字典会更好你的文件有两行新行吗?没有,只有一行新行,文本是state name,后面没有空格,然后是population numbers我知道它很长,但是这里有一个很棒的python教程:这里是:啊,这是一个键入错误快速问题,如果我想使用set()。如何将文本文件中的每一行添加到集合中?为什么要使用集合?集合不是关联数组。大多数人使用一组同质数据,例如一组键或一组值。集合类似于字典,只是不能将数据附加到每个元素。在您的示例中,可以为状态使用一个集合,但这样就无法将数据(人口)附加到每个状态。