笨方法学Python 习题 39: 字典, 可爱的字典

来源:互联网 发布:康佳lc32es62数据 编辑:程序博客网 时间:2024/06/04 19:18

一、列表

一组有序项目的集合。可变的数据类型【可进行增删改查】

列表是以方括号“[]”包围的数据集合,不同成员以“,”分隔。

列表中可以包含任何数据类型,也可包含另一个列表

列表可通过序号访问其中成员

二、元组

不可变序列

元组是以圆括号“()”包围的数据集合,不同成员以“,”分隔

与列表不同:元组中数据一旦确立就不能改变

三、字典

键值对的集合(map)

字典是以大括号“{}”包围的数据集合

与列表区别:字典是无序的,在字典中通过键来访问成员。

字典是可变的,可以包含任何其他类型

四、序列的索引和切片

列表、元组和字符串都是序列

序列的两个主要特点是索引操作符和切片操作符。

索引操作符让我们可以从序列中抓取一个特定项目。即下标操作,用方括号和数字抓取某个位置的项目,L[0]抓取第一个元素,L[-1]抓取最后一个元素

切片操作符让我们能够获取序列的一个切片,即一部分序列。方括号加一对可选数字,切出某个子片L[1:3] 返回1-2的子片,L[2:]从2开始到最后,L[:]整个

#!usr/bin/python# -*-coding:utf-8-*-class Song(object):    def __init__(self, lyrics):        self.lyrics = lyrics    def sing_me_a_song(self):        for line in self.lyrics:            print(line)happy_bday = Song(["Happy birthday to you",                   "I don't want to get sued",                   "So I'll stop right there"])bulls_on_parade = Song(["They rally around the family",                        "With pockets full of shells"])happy_bday.sing_me_a_song()bulls_on_parade.sing_me_a_song()
运行结果如下:

Happy birthday to youI don't want to get suedSo I'll stop right thereThey rally around the familyWith pockets full of shells

加分习题

在 Python 文档中找到 dictionary (又被称作 dicts, dict)的相关的内容,学着对 dict 做更多的操作。

找出一些 dict 无法做到的事情。例如比较重要的一个就是 dict 的内容是无序的,你可以检查一下看看是否真是这样。

试着把 for-loop 执行到 dict 上面,然后试着在 for-loop 中使用 dict 的 items() 函数,看看会有什么样的结果。

#!/usr/bin/python# coding=utf-8 dict = {'Google': 'www.google.com', 'Runoob': 'www.runoob.com', 'taobao': 'www.taobao.com'} print("字典值 : %s" %  dict.items()) # 遍历字典列表for key,values in  dict.items():    print(key,values)

常见问题回答

列表和字典有何不同?

列表是有序排列的一些物件,而字典是将一些物件(keys)对应到另外一些物件(values)的数据结构。

字典能用在哪里?

各种你需要通过某个值去查看另一个值的场合。其实你可以把字典当做一个“查询表”。

列表能用在哪里?

列表是专供有序排列的数据使用的。你只要知道索引就能查到对应的值了。

有没有办法弄一个可以排序的字典?

看看 Python 里的 collections.OrderedDict 数据结构。上网搜索一下文档和用法。


原创粉丝点击