python入门 - - - 廖雪峰 - 图文

发布时间 : 星期日 文章python入门 - - - 廖雪峰 - 图文更新完毕开始阅读

... Lisa Adam Bart 由于通过 key 可以获取对应的 value,因此,在循环体内,可以获取到value的值。

任务

请用 for 循环遍历如下的dict,打印出 name: score 来。

d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 } ?不会了怎么办 通过d[key]获取对应的value。 参考代码: d= { 'Adam': 95, 'Lisa': 85, 'Bart': 59 } for key in d: print key + ':', d[key] Python中什么是set

dict的作用是建立一组 key 和一组 value 的映射关系,dict的key是不能重复的。

有的时候,我们只想要 dict 的 key,不关心 key 对应的 value,目的就是保证这个集合的元素不会重复,这时,set就派上用场了。 set 持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的,这点和 dict 的 key很像。 创建 set 的方式是调用 set() 并传入一个 list,list的元素将作为set的元素:

>>> s = set(['A', 'B', 'C']) 可以查看 set 的内容:

>>> print s set(['A', 'C', 'B']) 请注意,上述打印的形式类似 list, 但它不是 list,仔细看还可以发现,打印的顺序和原始 list 的顺序有可能是不同的,因为set内部存储的元素是无序的。

因为set不能包含重复的元素,所以,当我们传入包含重复元素的 list 会怎么样呢?

>>> s = set(['A', 'B', 'C', 'C']) >>> print s set(['A', 'C', 'B']) >>> len(s) 3 结果显示,set会自动去掉重复的元素,原来的list有4个元素,但set只有3个元素。

任务

请用set表示班里的4位同学: Adam, Lisa, Bart, Paul

?不会了怎么办

创建set前,先创建一个list。 参考代码: s = set(['Adam', 'Lisa', 'Bart', 'Paul']) Python之 访问set

由于set存储的是无序集合,所以我们没法通过索引来访问。 访问 set中的某个元素实际上就是判断一个元素是否在set中。 例如,存储了班里同学名字的set:

>>> s = set(['Adam', 'Lisa', 'Bart', 'Paul']) 我们可以用 in 操作符判断: Bart是该班的同学吗?

>>> 'Bart' in s True Bill是该班的同学吗?

>>> 'Bill' in s False bart是该班的同学吗?

>>> 'bart' in s False 看来大小写很重要,'Bart' 和 'bart'被认为是两个不同的元素。

任务

由于上述set不能识别小写的名字,请改进set,使得 'adam' 和 'bart'都能返回True。

?不会了怎么办

在list中,需要把两个名字同时放进去。 参考代码: s = set(['Adam', 'adam', 'Lisa', 'lisa', 'Bart', 'bart', 'Paul', 'paul']) print 'adam' in s print 'bart' in s Python之 set的特点

set的内部结构和dict很像,唯一区别是不存储value,因此,判断一个元素是否在set中速度很快。 set存储的元素和dict的key类似,必须是不变对象,因此,任何可变对象是不能放入set中的。 最后,set存储的元素也是没有顺序的。 set的这些特点,可以应用在哪些地方呢?

星期一到星期日可以用字符串'MON', 'TUE', ... 'SUN'表示。

假设我们让用户输入星期一至星期日的某天,如何判断用户的输入是否是一个有效的星期呢? 可以用 if 语句判断,但这样做非常繁琐:

x = '???' # 用户输入的字符串 if x!= 'MON' and x!= 'TUE' and x!= 'WED' ... and x!= 'SUN': print 'input error' else: print 'input ok' 注意:if 语句中的...表示没有列出的其它星期名称,测试时,请输入完整。 如果事先创建好一个set,包含'MON' ~ 'SUN':

weekdays = set(['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN']) 再判断输入是否有效,只需要判断该字符串是否在set中:

x = '???' # 用户输入的字符串 if x in weekdays: print 'input ok' else: print 'input error' 这样一来,代码就简单多了。

任务

月份也可以用set表示,请设计一个set并判断用户输入的月份是否有效。 月份可以用字符串'Jan', 'Feb', ...表示。

?不会了怎么办

需要先创建一个包含所有月份的set。 参考代码: months = set(['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']) x1 = 'Feb' x2 = 'Sun' if x1 in months: print 'x1: ok' else: print 'x1: error' if x2 in months: print 'x2: ok' else: print 'x2: error' Python之 遍历set

由于 set 也是一个集合,所以,遍历 set 和遍历 list 类似,都可以通过 for 循环实现。 直接使用 for 循环可以遍历 set 的元素:

>>> s = set(['Adam', 'Lisa', 'Bart']) >>>for name in s: ... print name ... Lisa Adam Bart

联系合同范文客服:xxxxx#qq.com(#替换为@)