列表
def main(): fruits = ['grape', '@pple', 'strawberry', 'waxberry'] # 通过下标访问元素 print(fruits[0]) # grape print(fruits[1]) # @pple print(fruits[-1]) # waxberry print(fruits[-2]) # strawberry # print(fruits[-5]) # 位置 -5 不存在, 产生异常 IndexError # print(fruits[4]) # 位置 -4 不存在, 产生异常 IndexError print(fruits[1:4]) # 切片 ['apple', 'strawberry', 'waxberry'] fruits[1] = 'apple' # 修改元素 @pple -- 》 apple fruits.append('pitaya') # 在结尾处添加元素 ['grape', 'apple', 'strawberry', 'waxberry', 'pitaya'] fruits.insert(0, 'banana') # 在位置0处添加元素 ['banana', 'grape', 'apple', 'strawberry', 'waxberry', 'pitaya'] del fruits[1] # 删除位置1处元素'grape' ['banana', 'apple', 'strawberry', 'waxberry', 'pitaya'] fruits.pop() # 取出最后的元素,并删除 ['banana', 'apple', 'strawberry', 'waxberry'] fruits.pop(0) # 取出位置0处的元素,并删除 ['apple', 'strawberry', 'waxberry'] fruits.remove('apple') # 删除指定元素'apple' ['strawberry', 'waxberry'] # 生成器 list1 = list(range(1, 11)) # range创建数值列表 1 到10 list2 = [x * x for x in range(1, 11)] # 表达式,对 range创建数值列表 每一个元素 平方 list3 = [m + n for m in 'ABCDEFG' for n in '12345'] # 二重循环, 先遍历字符元素m, 再遍历数字元素n ['A1', 'A2', 'A3', 'A4', 'A5', 'B1', 'B2', 'B3', 'B4', 'B5', 'C1', 'C2', 'C3', 'C4', 'C5', 'D1', 'D2', 'D3', 'D4', 'D5', 'E1', 'E2', 'E3', 'E4', 'E5', 'F1', 'F2', 'F3', 'F4', 'F5', 'G1', 'G2', 'G3', 'G4', 'G5'] if __name__ == '__main__': main()
元组
与列表比较
相同点:操作方式相同,都是一组数据
不同点:列表使用[], 元组使用()
列表可修改, 元组不可以修改,对元组填删改都不可以
集合
与数学定义得集合一样,不能有重复元素,可以进行交集,并集,差集等运算
def main(): set1 = {1, 2, 3, 3, 3, 2} # 大括号 表示集合 print(set1) # 集合自动去除重复值 {1, 2, 3} print('Length =', len(set1)) # 长度是 3 set2 = set(range(1, 10)) # 定义集合, 将列表转成集合 {1, 2, 3, 4, 5, 6, 7, 8, 9} set1.add(4) # 添加元素 {1, 2, 3, 4} set1.add(5) # 添加元素 {1, 2, 3, 4, 5} set2.update([11, 12]) # 添加元素 11,12, {1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12} set2.discard(5) # 丢弃元素5, {1, 2, 3, 4, 6, 7, 8, 9, 11, 12} if 4 in set2: # 先判断元素4 是否在集合set2中,在则删除,不在时使用remove会引发异常 set2.remove(4) # {1, 2, 3, 6, 7, 8, 9, 11, 12} # 遍历集合容器 for elem in set2: print(elem ** 2, end=' ') # 1 4 9 36 49 64 81 121 144 set3 = set((1, 2, 3, 3, 2, 1)) # 将元组转换成集合 ,去除重复值 {2,3,4} print(set3.pop()) # 取第一个值 1, 并移除 print(set3) # {2, 3} # set1 {1, 2, 3, 4, 5}, set2 {1, 2, 3, 6, 7, 8, 9, 11, 12} # 集合的交集 {1, 2, 3} print(set1 & set2) print(set1.intersection(set2)) # 并集 {1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12} print(set1 | set2) print(set1.union(set2)) # 差集 {4, 5} print(set1 - set2) print(set1.difference(set2)) # 对称差运算 {4, 5, 6, 7, 8, 9, 11, 12} print(set1 ^ set2) print(set1.symmetric_difference(set2)) # 判断子集 print(set2 <= set1) print(set2.issubset(set1)) print(set3 <= set1) print(set3.issubset(set1)) # 判断超集 print(set1 >= set2) print(set1.issuperset(set2)) print(set1 >= set3) print(set1.issuperset(set3)) if __name__ == '__main__': main()
字典
def main(): scores = {'骆昊': 95, '白元芳': 78, '狄仁杰': 82} print(scores['骆昊']) # 输出key 是 骆昊 的 value 95 print(scores['狄仁杰']) # 输出key 是 狄仁杰 的 value 78 for elem in scores: # 循环输出字段所有元素 key--->value print('%s\t--->\t%d' % (elem, scores[elem])) for elem in scores.items(): print('%s\t--->\t%d' % (elem[0], elem[1])) scores['白元芳'] = 65 # 修改key 是 白元芳 的 value, 修改为 65 scores['诸葛王朗'] = 71 # 修改key 是 诸葛王朗 的 value, 修改为 71 scores.update(冷面=67, 方启鹤=85) # 新加元素 key 是 冷面的value 67, key 是 方启鹤的value 85 print(scores) # {'骆昊': 95, '白元芳': 65, '狄仁杰': 82, '诸葛王朗': 71, '冷面': 67, '方启鹤': 85} if '武则天' in scores: # 判断 key 武则天, 是否在字典中 print(scores['武则天']) print(scores.get('武则天')) # key 不存在时,输出None print(scores.get('武则天', 60)) # key 不存在时,输出第二个参数60 print(scores.popitem()) # 输出并删除最后的元素 ('方启鹤', 85) print(scores.pop('骆昊', 100)) # key 存在时,输出key=骆昊 的value 95 scores.clear() # 清空字典 {} if __name__ == '__main__': main()