设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 22786|回复: 16
打印 上一主题 下一主题

【Python 第37课】 字典

[复制链接]

10

主题

0

好友

52

积分

注册会员

Rank: 2

跳转到指定楼层
楼主
发表于 2013-7-25 19:15:19 |只看该作者 |正序浏览
本帖最后由 mty1111 于 2013-7-25 19:17 编辑

今天介绍一个python中的基本类型--字典(dictionary)。

字典这种数据结构有点像我们平常用的通讯录,有一个名字和这个名字对应的信息。在字典中,名字叫做“键”,对应的内容信息叫做“值”。字典就是一个键/值对的集合。

它的基本格式是(key是键,value是值):
  1. d = {key1 : value1, key2 : value2 }
复制代码
键/值对用冒号分割,每个对之间用逗号分割,整个字典包括在花括号中。

关于字典的键要注意的是:
1.键必须是唯一的;
2.键只能是简单对象,比如字符串、整数、浮点数、bool值。

list就不能作为键,但是可以作为值。

举个简单的字典例子:
  1. score = {   
  2.      '萧峰': 95,
  3.      '段誉': 97,
  4.      '虚竹': 89
  5. }
复制代码
python字典中的键/值对没有顺序,我们无法用索引访问字典中的某一项,而是要用键来访问。
  1. print score['段誉']
复制代码
注意,如果你的键是字符串,通过键访问的时候就需要加引号,如果是数字作为键则不用。


字典也可以通过for...in遍历:
  1. for name in score:
  2.     print score[name]
复制代码
注意,遍历的变量中存储的是字典的键。


如果要改变某一项的值,就直接给这一项赋值:
  1. score['虚竹'] = 91
复制代码
增加一项字典项的方法是,给一个新键赋值:
  1. score['慕容复'] = 88
复制代码
删除一项字典项的方法是del:
  1. del score['萧峰']
复制代码
注意,这个键必须已存在于字典中。


如果你想新建一个空的字典,只需要:
  1. d = {}
复制代码
0.jpg

#==== Crossin的编程教室 ====#
微信ID:crossincode
QQ群:312723402

面向零基础初学者的编程课
每天5分钟,轻松学编程

回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

17#
发表于 2018-7-26 18:42:26 |只看该作者
shan91 发表于 2018-7-26 10:14
这是代码的一部分,sum1和sum2都是数值,想将字典储存成文本,错误提示只接受str格式,尝试将sum1和sum2用s ...

读文件和写文件要分开
写文件要用 w 模式打开
close()后面要有括号

你再对照下写文件的例子
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

18

积分

新手上路

Rank: 1

16#
发表于 2018-7-26 10:14:40 |只看该作者
这是代码的一部分,sum1和sum2都是数值,想将字典储存成文本,错误提示只接受str格式,尝试将sum1和sum2用str格式一下,还是不行。想问一下要如何储存?谢谢

QQ图片20180726100906.png (4.24 KB, 下载次数: 399)

QQ图片20180726100906.png

回复

使用道具 举报

0

主题

2

好友

72

积分

注册会员

Rank: 2

15#
发表于 2018-5-5 21:38:38 |只看该作者
  1. score={
  2.     '小峰':95,
  3.     '小段':97,
  4.     '小虚':89
  5.     }
  6. for name in score:
  7.     print(score[name])

  8. for name in score:
  9.     print(name,':',score[name])
复制代码
尴尬....最近忙着找工作和一些杂事,之前的东西有点遗忘了,再来扎实一下基础知识
回复

使用道具 举报

0

主题

2

好友

72

积分

注册会员

Rank: 2

14#
发表于 2018-4-10 19:40:12 |只看该作者
  1. score={
  2.     'xiao':97,
  3.     'duan':95,
  4.     'xu':89
  5.     }
  6. print(score['xiao'])

  7. for name in score:
  8.     print(score[name],end='')

  9. score['xu']=91
  10. score['mu']=80
  11. print(score)

  12. del score['xiao']
  13. for name in score:
  14.     print(name,score[name])
复制代码
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

13#
发表于 2018-2-25 15:42:50 |只看该作者
python弟弟 发表于 2018-2-24 15:32
请问这个编码设置有专门的章节讲吗?

公众号回复 编码,有几篇文章
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

1

主题

0

好友

15

积分

新手上路

Rank: 1

12#
发表于 2018-2-24 15:32:43 |只看该作者
crossin先生 发表于 2016-7-24 09:57
你用了中文,代码开头第一行要加上编码设置

请问这个编码设置有专门的章节讲吗?
回复

使用道具 举报

0

主题

0

好友

20

积分

新手上路

Rank: 1

11#
发表于 2016-8-5 11:02:52 |只看该作者
sorce = {
    '语文': 84,
    '数学': 98,
    '英语': 93
}
# print(sorce['数学'])

sorce['语文'] = 96
sorce['政治'] = 88

print(sorce['政治'])

print(list(sorce))
del sorce['政治']
print(list(sorce))
for name in sorce:
    print(name,sorce[name])

打卡
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

10#
发表于 2016-7-24 09:57:18 |只看该作者
vkshi 发表于 2016-7-23 21:47
score = {   
     '萧峰': 95,
     '段誉': 97,

你用了中文,代码开头第一行要加上编码设置
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

4

积分

新手上路

Rank: 1

9#
发表于 2016-7-23 21:47:44 |只看该作者
score = {   
     '萧峰': 95,
     '段誉': 97,
     '虚竹': 89
}

这个score我在2.7.11的IDLE无法保存,是怎么回事,谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-6-27 23:05 , Processed in 0.018879 second(s), 25 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部