一、列表
一组有序项目的集合。可变的数据类型【可进行增删改查】
列表是以方括号“[]”包围的数据集合,不同成员以“,”分隔。
列表中可以包含任何数据类型,也可包含另一个列表
列表可通过序号访问其中成员
二、元组
不可变序列
元组是以圆括号“()”包围的数据集合,不同成员以“,”分隔
与列表不同:元组中数据一旦确立就不能改变
三、字典
键值对的集合(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 you
I don't want to get sued
So I'll stop right there
They rally around the family
With 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 数据结构。上网搜索一下文档和用法。