Lists和Tuples
相同点:
- 都可以按顺序存储元素;
- 可以存储不同类型的元素,即一个List中可以存储任何Python的对象;
不同点:
- Lists的元素可以改变,Tuples中的元素不可以;
- Tuples占的空间小
Lists
创建
- 使用 [] 或者 list()
a_list = []
a_list = list()
a_list = [a, b, c, d]
- 使用 list() 从其它类型得到一个list
list_from_string = list("fromstring")
some_tuple = "good", "better", "best"
list_from_tuple = list(some_tuple)
访问数据
- 使用[offset]访问元素,offset从0开始计算为第一个元素,-1为最后一个元素
a_week = ["Monday","Tuseday","Wednesday","Thursday","Friday"]
- 访问第一个元素和最后一个元素
a_week[0]
a_week[-1]
- 使用 slice 即 [begin:end:steps]访问从bigin 到 end -1中间隔为steps的元素,默认begin为0,end为最后元素的offset,steps为1
first_three_days = a_week[0:3:1]
last_three_days = a_week[-1:-4:-1]
添加元素
- 使用append()或者+=在List末尾添加元素,注意append()把添加的元素当成一个整体,而+=则是将能分开的结构分开加入,如下代码实际上
a_week+=("Sunday")
添加了六个元素而并非”Sunday”这个元素
a_week.append("Saturday")
a_week+=("Sunday")
- 使用 insert(offset, element),在offset位置添加元素element
a_week.insert(5,"Saturday")
删除元素
- 使用 del,del并非是List 的方法,而是相当于 = 的反向操作
del a_week[5]
del a_week[-1:-5:-1]#删除后四个元素
- 使用Lists方法 remove(value) value为元素的具体值
a_week.remove("Monday")#删除"Monday"
- 使用 pop(offset) 删除offset上的元素,并获得该元素,offset默认为-1
a_day = a_week.pop(5)#取第六个元素并从List中删除
其它常用List操作
List自带方法
- index(value) :返回具体元素的offset
- count(value) :返回具体元素的的出现次数
- sort() :对List按顺序重排,数字默认从小到大,字母则按字母表顺序,可使用reverse=ture参数改变排列顺序
- sorted() :返回一个重排后的List,不改变原先的List
- copy() :将List内容复制到新的List中,而 = 只是为List起新的名字,实际上都是同一个List
new_week = a_week.copy()#new_week为一个新的List
new_name_to_list = a_week #没有创建新的List,只是多了个名字
通用方法
- len() :获得List 的长度
- in :判断object是否在List中
if "Monday" in a_week:
print("new week starts!")
Tuples
创建
- 使用()
empty_tuple = ()#创建一个空Tuple
weird_names = "Tony","Cindy","Apple","Passion","LOL"#创建非空Tuple的时候()不是必须的
- 使用 tuple() 从其他类型得到
char_tuple = tuple("Fuji")
days_tuple = tuple(a_week)
List和Tuple的unpacking:一次性使用多个元素
a,b,c,d = char_tuple #将Tuple中四个元素分别赋值个四个变量
first,second,third,fourth = a_week[:4:1]#将前四个元素赋值给四个变量
Dictionaries
Dictionary是类似于List,但是Dictionary不用offset访问,而是用唯一的key访问对应的value,它的元素是key-value的一对值,key必须是不可变的Python对象,如boolean,integer,string,Tuple等。
创建
- 使用 {}
empty_dict = {}#创建一个空Dictionary
e2c_dict = {"love":"爱","you":"你"}
- 使用 dict() 从其他类型创建Dictionary
couple = [["Mike","Amy"],["Tony","Lisa"]]
couple_dict = dict(couple)
添加元素
- 使用 [key] 对元素进行操作
couple["Henry"] = "Christina"#添加元素 "Henry":"Christina"
couple["Mike"] = "Sucy" #改变元素值
- 使用 update() 将其它Dictionary合并
other_cp = ["William":"Tylor","Tom":"Lily"]
couple.update(other_cp) #将other_cp中的元素加入到couple中
删除元素
- 使用 del 删除某个元素
del couple["Mike"]
- 使用 clear() 删除全部元素
other_cp.clear()
其它常用Dictionary操作
Dictionary的方法
- keys() :获得Dictionary中所有的key
- values() :获得Dictionary中所有的value
- items() : 获得Dictionary中所有的元素
list(couple.keys())
list(couple.values())
list(couple.items())
#在Python3中上面三个方法返回的都不是List,而分别是#dict_keys(),dict_values(),dict_items(),
#需要用List()函数,转换成List
- copy() :和List的copy() 一样,实际上复制Dictionary中的元素而不是简单的换个名字
通用方法
- in :判断一个key是否在一个Dictionary中
Sets
Sets也就是数学中的集合,它的元素具有唯一性和Dictionary中的key一样,即Sets中不会有重复的元素
创建
- 使用 set()
empty_set = set()#creat an empty set
char_set = set("passion")
#creat a set from a string,
#which only has one 's' though it appears twice in"passion"
- 使用 {} 创建非空的set
fruits = {'apple','banana','pear','watermelon'}
set的基本操作
- 求交集:&或者intersection()
others = {'apples','grape','lemon'}
fruits_in_common = others & fruits
fruits_in_common = othters.intersection(fruits)
- 求合集:| 或者union()
total_fruits = others | fruits
total_fruits = others.union(fruits)
- 求差集,即在集合a中而不再集合b中:- 或者difference()
fruits - others
fruits.difference(others)
- 求对称差,即两集合的非公共部分:^ 或者 symmetric_diffrence()
others^fruits
others.symmetric_difference(fruits)