鱼C论坛

 找回密码
 立即注册
查看: 1622|回复: 5

[已解决]将文本的内容转换成字典问题求助

[复制链接]
发表于 2018-1-4 17:06:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
如何将txt文本里的数据(苹果 7 桃子 6 西瓜 5 红玫瑰 4  )读取然后转换成字典?
我的代码如下:

  1. f=open('D:/测试1.txt','r')
  2. str1=f.read()  #建立一个空字符串用来读取文本的内容
  3. str2=str1.split()#这里我是用空格键讲str1里的字符串进行分割成独立的单个元素然后一起打包在列表中
  4. dict1={}
  5. length=len(str2)
  6. for i in range(0,length,2):
  7.     for j in range(1,length,2):
  8.         dict1[str2[i]]=str2[j]
  9. print(dict1)
  10. f.close()
复制代码


但是打印出来的结果是苹果 4 桃子 4 西瓜 4 红玫瑰 4
最佳答案
2018-1-4 17:14:32
6~8行改为:
  1. for i in range(0,length,2):
  2.     dict1[str2[i]]=str2[i + 1]
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-1-4 17:14:24 | 显示全部楼层
  1. with open('1.txt', 'r') as f:
  2.     a = f.read().strip().split(' ')

  3. keys = a[::2]
  4. values = a[1::2]

  5. print(dict(zip(keys, values)))

  6. ##  这个意思?  {'红玫瑰': '4', '西瓜': '5', '桃子': '6', '苹果': '7'}
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-4 17:14:32 | 显示全部楼层    本楼为最佳答案   
6~8行改为:
  1. for i in range(0,length,2):
  2.     dict1[str2[i]]=str2[i + 1]
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-4 17:22:00 | 显示全部楼层

其实这样子就可以了感谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-4 17:22:35 | 显示全部楼层

感谢,你这个好像是可以的!学习了!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-4 17:39:06 | 显示全部楼层
一步一步看你就知道了
  1. >>> str1 = '苹果 7 桃子 6 西瓜 5 红玫瑰 4'
  2. >>> str2 = str1.split()
  3. >>> str2
  4. ['苹果', '7', '桃子', '6', '西瓜', '5', '红玫瑰', '4']
  5. >>> dict1 = {}
  6. >>> length = len(str2)
  7. >>> i = 0
  8. >>> j = 1
  9. >>> dict1[str2[i]] = str2[j]
  10. >>> dict1
  11. {'苹果': '7'}
  12. >>> j = 3
  13. >>> dict1[str2[i]] = str2[j]
  14. >>> dict1
  15. {'苹果': '6'}
  16. >>> j = 5
  17. >>> dict1[str2[i]] = str2[j]
  18. >>> dict1
  19. {'苹果': '5'}
  20. >>> j = 7
  21. >>> dict1[str2[i]] = str2[j]
  22. >>> dict1
  23. {'苹果': '4'}
  24. >>> i = 2
  25. >>> j = 1
  26. >>> dict1[str2[i]] = str2[j]
  27. >>> dict1
  28. {'苹果': '4', '桃子': '7'}
  29. >>> j = 3
  30. >>> dict1[str2[i]] = str2[j]
  31. >>> dict1
  32. {'苹果': '4', '桃子': '6'}
  33. >>>
复制代码

最后就变成那样了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-5 11:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表