列表
定义[1,2,3,4,5,6]
或[“hello”,“world”,1,9]
或[[1,2],[3,4],“hello”,“world”,1,9](嵌套列表)
数字、布尔和字符串都可以,甚至是列表(任意类型)
输入为:type([1,2,3,4,5,6])
输出为:<class’list’>
访问列表元素
输入为:[1,2,3,4,5,6][0]
输出为:1
输入为:[1,2,3,4,5,6][3]
输出为:3
输入为:[1,2,3,4,5,6] [0:2] (得到列表)
输出为:[1,2]
输入为:[1,2,3,4,5,6] [-1:] (得到列表)
输出为:[6]
列表元素更换
输入为:[1,2,3,4,5,6]+[7,8]
输出为:[1,2,3,4,5,6,7,8]
输入为:[7,8]*3
输出为:[7,8,7,8,7,8]
列表元素切片方法
a[0:len(a):2]
其中:a是列表,0为初始位置,len(a)表示便宜量,此处为列表a的长度,2是步长
元组
定义(1,2,3,4,5,6)
输入为:type((1,2,3,4,5,6))
输出为:<class ‘tuple’>
和列表一致可以放任意元素
和列表运算方式也一致
括号表示运算符号的时候,规定()不表示tuple
输入为:type((1))
输出为:<class ‘int’>
输入为:type((hello))
输出为:<class ‘str’>
括号表示tuple方法
(1,)
输入为:type((1,))
输出为:<class tuple’>
输入为:type(())
输出为:<class tuple’>
str list tuple都是序列
序号:用[2]序号获得元素,每个元素会被分配一个序号
切片:用[0:3][-1:0]获得元素序列 [0:8:2]是另一种用法
判断元素:3(not) in [1,2,3,4,5,6]得到bool
输入为:3 in [1,2,3,4,5,6]
输出为:True
输入为:10 in [1,2,3,4,5,6]
输出为:False
输入为:3 not in [1,2,3,4,5,6]
输出为:False
求长度:
输入为:len([1,2,3,4,5,6])
输出为:6
求最大/最小<根据ASIC码排序通过方法old()求值>
输入为:max(min)([1,2,3,4,5,6])
输出为:6(1)
输入为:max(min)(‘hello world’)
输出为:w( 空格)
输入为:min(‘hello world’)
输出为:d
集合set
集合是无序的
用{1,2,3,4,5,6}定义
输入为:type({1,2,3,4,5,6})
输出为:<class’set’>
输入为:{1,2,1,3,2,4}<集合不重复>
输出为:{1,2,3,4}
同理len/(not)in/max/min皆可适用
-号 求差集
输入为:{1,2,3,4,5,6}-{3,4}
输出为:{1,2,5,6}
&号 求交集
输入为:{1,2,3,4,5,6}&{3,4}
输出为:{3,4}
|号 求合集
输入为:{1,2,3,4,5,6}|{3,4,7}
输出为:{1, 2, 3, 4, 5, 6, 7}
定义一个空集
set()
字典dict
dict<集合类型,无序>
通过Key来访问Value
Key 关键字
Value 值
{Key1:Value1,Key2:Value2,Key2:Value2,Key2:Value2,…}
输入为:type({1:1,2:2,3:3})
输出为:<class’dict’>
提取字典值
输入为: {1:‘a’,2:‘b’,3:‘c’}[1]
输出为:‘a’
输入为: {1:‘a’,1:‘b’,3:‘c’}[1]
输出为:‘b’
输入为: {1:‘a’,1:‘b’,3:‘c’}<字典不能有重复的key>
输出为: {1:‘b’,3:‘c’}
输入为: {1:‘a’,‘1’:‘b’,3:‘c’}[1]
输出为:‘a’
输入为: {1:‘a’,‘1’:‘b’,3:‘c’}[‘1’]
输出为:‘b’
Key必须是不可变的类型<不可以是列表但是可以是元组字符串和int等数字型>
Value可以是str,int,bool等多种形式,包括数组、集合甚至字典
空的字典定义{}
输入为:type({})
输出为:<class’dict’>
============================================== =============================================
补充
可哈希性和hash()函数
不可以被哈希的类型包括数值,字符串,元组,列表和字典
frozenset()创建不可变数据类型
A= frozenset(“pypy123”)
frozenset({‘2’, ‘3’, ‘p’, ‘y’, ‘1’})
集合方法
S.add(x) x加到集合
S.remove(x) 删除x,x不存在,报错
S.discard(x) 删除x,x不存在,不报错
S.clear() 删除所有元素
S.pop() 随机返回元素,空,报错
S.copy() 复制集合产生副本
S.intersection(T) 产生交集,新集合,S不变
S.intersection_update(T) 产生交集,更新集合
S.union(T) 产生并集,新集合,S不变
S.update(T) 产生并集,更新集合
S.difference(T) 产生差集,新集合,S不变
S.difference_update(T) 产生差集,更新集合
S.symmetric_difference(T) 产生补集,新集合,S不变
S.symmetric_difference_update(T) 产生补集,更新集合
S.isdisjoint(T) 无共同元素true
S.issubset(T) T是S的子集true
S.issuperset(T) T是S的父集true
元组方法
tp.index(x) 第一次出现位置
tp.count(x) 出现次数
列表方法
ls.append(x) 最后增加元素
ls.insert(x) 第i位置增加元素
ls.extend(lt) 最后增加新列表
ls.remove(x) 删除第一次出现的x
ls.clear() 删除列表所有元素
ls.pop(i) 第i个元素取出并删除
ls.copy() 复制 产生副本
ls.reverse() 列表元素反转
ls.index(x) 第一次出现位置
ls.count(x) 出现次数
ls.sort() 列表排序默认递增
字典方法
d.items() 返回所有
d.keys() 返回键
d.values() 返回值
d.pop(k) 取出特定key,并删除键值对
d.popitem() 随机取出键值对,返回
d.update(t) 扩展其他字典t到当前,键重复替换
d.clear() 删除所有元素
d.copy() 复制 产生副本
d.get(k, default) key存在返回值,不存在返回default