列表是有序的,可以随时添加和删除其中的元素
元组是有序的,不过一旦初始化就不能修改
字典目前是无序的,为什么说是目前,因为3.6版本的字典进行过更新,目前还没有看到明确说是有序的,跟列表一样也可以添加和删除其中元素
集合是无序不重复的元素集合,主要作用是做数学意义上的交集并集等操作。
列表
# 定义一个列表 classmates = ['Kitty', 'Bob' ,12] # 访问列表 >>>classmates[0] Kitty >>>classmates[1:3] ['Bob', 12] >>>for i in classmates: print(i,end=' ') kitty Bob 12 # 增加列表元素 >>>classmates.append('我是新加入的') >>>classmates ['Kitty', 'Bob' ,12,'我是新加入的'] # 插入元素 >>>classmates.insert(1, '插队生') >>>classmates ['Kitty', '插队生', 'Bob' ,12,'我是新加入的'] # 修改元素 >>>classmates[1] = '代替插队生' >>>classmates ['Kitty', '代替插队生', 'Bob' ,12,'我是新加入的'] # 删除元素 >>>del classmates[1] >>>classmates ['Kitty', 'Bob' ,12,'我是新加入的'] >>>classmates.remove(12) >>>classmates ['Kitty', 'Bob' , '我是新加入的'] >>>classmates.pop() #删除最后一个元素 >>>classmates ['Kitty', 'Bob'] # 添加多个元素 >>>names = [1,2,3] >>>classmates.extend(names) >>>classmates ['Kitty', 'Bob', 1, 2, 3] # 拷贝 >>>classmates_copy = classmates.copy() >>>classmates_copy ['Kitty', 'Bob', 1, 2, 3] # 统计 >>>classmates.count('Kitty') 1 # 排序&反转 >>>classmates.sort() # 排序 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unorderable types: int() < str() # 由于有str和int所以不能排序 >>>classmates = ['kitty','Bob','Jack'] >>>classmates.sort() >>>classmates ['Bob','Jack','kitty'] >>>classmates.reverse() #反转 >>>classmates ['kitty','Jack','Bob'] # 获取下标 >>>classmates.index('Jack') 1
元组
# 创建元组 tup1 = ('java','php') # 当元组只有一个元素时 tup2 = ('python',) # 访问元组 >>>tup1[0] java # 元组合并 >>>tup3 = tup1+tup2 >>>tup3 ('java','php','python') # 删除元组,只能整个删除 >>>del tup3 # 取元组中最大最小值 tup3 = ('1','2','3') >>>max(tup3) 3 >>>min(tup3) 1 # 列表转元组 list1 = ['java','c','c++'] tup4 = tuple(list1) >>>tup4 ('java','c','c++') # 元组统计 t = ('google','Runoob','Taobao','Runoob') >>>t.count('Runoob') 2 # 元组index(),返回找到的第一个元素索引,没有则报错 >>>t.index('Runoob') 1
字典
# 创建字典 info = { 'Demo':'好人', 'Jack':'坏人', 'Pick':'人妖' } # 增加 >>>info['Kitty'] = '猫' >>>info {'Demo': '好人', 'Jack': '坏人', 'Pick': '人妖', 'Kitty': '猫'} # 修改 >>>info['Pick'] = '超人' >>>info {'Demo': '好人', 'Jack': '坏人', 'Pick': '超人', 'Kitty': '猫'} # 删除 >>>info.pop('Pick') >>>info {'Demo': '好人', 'Jack': '坏人', 'Kitty': '猫'} >>>del info['Kitty'] >>>info {'Demo': '好人', 'Jack': '坏人'} >>>info.popitem() # 随机删除,但一般删除末尾 >>>info {'Demo': '好人'} # 查找 >>>'Demo' in info True >>>info.get('Demo') 好人 #values >>> info.values() dict_values(['LongZe Luola', 'XiaoZe Maliya']) #keys >>> info.keys() dict_keys(['stu1102', 'stu1103']) #setdefault >>> info.setdefault("stu1106","Alex") 'Alex' >>> info {'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'} >>> info.setdefault("stu1102","龙泽萝拉") 'LongZe Luola' >>> info {'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'} #update >>> info {'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'} >>> b = {1:2,3:4, "stu1102":"龙泽萝拉"} >>> info.update(b) >>> info {'stu1102': '龙泽萝拉', 1: 2, 3: 4, 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'} #items info.items() dict_items([('stu1102', '龙泽萝拉'), (1, 2), (3, 4), ('stu1103', 'XiaoZe Maliya'), ('stu1106', 'Alex')]) # 循环字典 #方法1 for key in info: print(key,info[key]) #方法2 for k,v in info.items(): #会先把dict转成list,数据里大时莫用 print(k,v)
集合
# 集合作用 #去重,把一个列表变成集合,就自动去重了; #关系测试,测试两组数据之前的交集、差集、并集等关系 s = set([3,5,9,10]) #创建一个数值集合 t = set("Hello") #创建一个唯一字符的集合 a = t | s # t 和 s的并集
b = t & s # t 和 s的交集 c = t – s # 求差集(项在t中,但不在s中) d = t ^ s # 对称差集(项在t或s中,但不会同时出现在二者中) 基本操作: t.add('x') # 添加一项 s.update([10,37,42]) # 在s中添加多项 使用remove()可以删除一项: t.remove('H') len(s) set 的长度 x in s 测试 x 是否是 s 的成员 x not in s 测试 x 是否不是 s 的成员 s.issubset(t) s <= t 测试是否 s 中的每一个元素都在 t 中 s.issuperset(t) s >= t 测试是否 t 中的每一个元素都在 s 中 s.union(t) s | t 返回一个新的 set 包含 s 和 t 中的每一个元素 s.intersection(t) s & t 返回一个新的 set 包含 s 和 t 中的公共元素 s.difference(t) s - t 返回一个新的 set 包含 s 中有但是 t 中没有的元素 s.symmetric_difference(t) s ^ t 返回一个新的 set 包含 s 和 t 中不重复的元素 s.copy() 返回 set “s”的一个浅复制