为了实现这个字典
我们先理一下思路
我是这想的,我的思路如下:
1.我想先把这个中国天气代码的原数据每一行变成一个列表
因为在python中对列表的处理函数和方法最多
而且在实际工作中是用的最多的python数据结构也是列表
我把这个文件里的内容可以变成形式如下
['101010100','北京']
['101010200','海淀']
['101010300','朝阳']
['101010400','顺义']
['101010500','怀柔']
……
2.然后我们利用列表的list[::-1]方法循环将每一行的列表元素调换位置
>>> list = ['fdsf','fdssfsdf','546465','fdsff']
>>> print(list[::-1])
['fdsff', '546465', 'fdssfsdf', 'fdsf']
>>>
我们可以利用这个方法批量处理上面形式中的每行的列表
['北京','101010100']
['海淀','101010200']
['朝阳','101010300']
['顺义','101010400']
['怀柔','101010500']
……
#本来当时我想的是找一个能够交换同一行中两个字符串的函数,为此还学习了一下string 模块
#然后发现里面唯一有用的是交换连个字符位置的方法,用的还是一个一个字符循环处理(看到这里我放弃了,细节太多了)
哪有没有什么办法能够批量的交换呢,我就想到了python中的列表于是在IDLE中尝试了一下,竟然成功了(过程如上叙述)
3.当我们将里面的元素调换位置后,将列表变为字典,过程如下
(1).我们现在要将这个文件中每行的小列表里面的两个元素变成一个字典里的键值对
'北京':'101010100'
'海淀':'101010200'
'朝阳':'101010300'
'顺义':'101010400'
'怀柔':'101010500'
……
(2).然后我们手动给这个文件加上字典的{ },如下:
工作量几乎没有,所以这里不用代码实现,采取手动
变成如下形式
{'北京':'101010100'
'海淀':'101010200'
'朝阳':'101010300'
'顺义':'101010400'
'怀柔':'101010500'
……
'阿里山':'101340902'
'玉山':'101340903'
'新港':'101340904'}
(3)得到上面的形式后,我们要注意一个知识点
这里的每行的最后虽然没有东西,
但是我们将他当做字符串打印出来的时候会发现每一行的最后是一个换行符\n
所以我们将这个行符替换成一个逗号 "," ,这个逗号是分隔字典中每个键值对的
然后我们就得到了这个可以直接使用的字典。
如下形式:
{'北京 ': '101010100', '海淀 ': '101010200', '朝阳 ': '101071201', '顺义 ': '101010400', '怀柔 '……'马公 ': '101340801', '东吉屿 ': '101340802', '嘉义 ': '101340901', '阿里山 ': '101340902', '新港': '101340904'}
有了思路我们后面只需要找到相关的模块方法处理文件
实现这些设想和思路,事实证明这些不是没有用的,希望我的思路可以对大家有所启发
如果还是做不出来的话,具体的执行方法和代码,我后面会继续更新博客