python节省txt信息包含列表的字典



我是Python的新手,我知道您可以将信息保存到格式的字典中:

dictionary ={'Albany' : [ 201, 16.9, etc] }

,但我正在尝试从文本文件中获取信息以进入该格式。有人知道我该怎么做吗?抱歉,如果我含糊不清,我可以在必要时尝试为任何人澄清。这是文本文件的一部分:

36 1 39857 35436 44278 13.7 12.2 15.2 9271 7566 10976 10976 16.1 13.1 19.1 6123 4832 4832 7414 14.5 11.4 17.6 55778 55778 53673 578835788357883
奥尔巴尼县纽约EST13_NY.TXT 05nov2014

36 3 7296 5941 8651 16.7 13.6 19.8 2526 2043 3009 25.6 20.7 30.5 1707 1331 2083 23.5 18.3 28.7 41849 39467 44231
Allegany County NY EST13_NY.TXT 05nov2014

前两行是文本文件中的一行,我要做的是比较最高行(儿童贫困数据)的某些统计数据,并根据我的计划状态,哪个县的贫困百分比最高基于TXT文件中的其他数据的数据和其他内容。

对于每个县,这是我需要的数据:我们关心的每个县的数据是:位置变量

  • 50-57贫困中0-17岁的人的估计
  • 77-80估计贫困年龄的人数为0-17岁
  • 134-139家庭收入中位数的估计
  • 194-238州或县名
  • 县的名称包括"县"。摆脱它的使用剥离落后空白后,更换("县"'')。

也不能使用任何模块。到目前为止,我打开了txt文件,然后做了一个用于循环读取文件中的每行并将其放入字典中,但是我不确定如何以上面说的格式放置它。

您没有提供太多信息,因此这只是一个演示代码,可以帮助您知道如何实现这一目标:

通常,人们将collections.defaultdict用于这种事情,但是由于您说您不希望任何模块导入,因此这里有此类问题的算法模式:

让我们首先了解实际问题:

示例提示:

对于这些类型的列表问题,有一个模式:

所以假设您有一个列表:

a=[(2006,1),(2007,4),(2008,9),(2006,5)]

您想将其转换为元组的第一个元素,作为元组的钥匙和第二个元素。类似:

{2008: [9], 2006: [5], 2007: [4]}

但是您还希望那些具有不同值但键的键与(2006,1)和(2006,5)键相同,但值不同,但值不同。您希望这些值仅用一个密钥附加,因此预期输出:

{2008: [9], 2006: [1, 5], 2007: [4]}

对于这种类型的问题,我们做这样的事情:

首先创建一个新的dict,然后我们遵循此模式:

if item[0] not in new_dict:
    new_dict[item[0]]=[item[1]]
else:
    new_dict[item[0]].append(item[1])

因此,我们首先检查键是否在新dict中,并且是否已经在其值中添加重复键的值:

完整代码:

a=[(2006,1),(2007,4),(2008,9),(2006,5)]
new_dict={}
for item in a:
    if item[0] not in new_dict:
        new_dict[item[0]]=[item[1]]
    else:
        new_dict[item[0]].append(item[1])
print(new_dict)

最新更新