现在只是一部分数据类型的简单整理,后续还会更新
序列
这里来一个示例,后续介绍的就不给出示例了,不然篇幅太长影响阅读
>>>s = [1,3,5,7,5,9,3,7,9]
x in s
>>>3 in s
True
>>>2 in s
False
x not in s
>>>3 not in s
False
>>>2 not in s
True
s + t
>>>t = [2,4,6,8]
>>>s + t
[1, 3, 5, 7, 5, 9, 3, 7, 9, 2, 4, 6, 8]
s * n或n * s
>>>s * 3
[1,3, 5, 7, 5, 9, 3, 7, 9, 1, 3, 5, 7, 5, 9, 3,7, 9,1, 3,5,7, 5, 9, 3, 7,9]
s[i]
>>>s[3]
7
s[i, j]
>>>s[0:6]
[1, 3, 5, 7, 5, 9]
s[i, j, k]
>>>s[0:9:2]
[1, 5, 5, 3, 9]
len(s)
>>>len(s)
9
min(s)
>>>min(s)
1
max(s)
>>>max(s)
9
s.index(x, i, j)
>>>s.index(5, 1, 8)
2
s.count(x)
>>>s.count(3)
2
其中,元组是序列类型中比较特殊的类型,因为它一旦被创建就不能被修改。元组类型在表达固定数据项、函数多返回值、多变量同步赋值、循环遍历等情况下十分有用。python中元组采用逗号和圆括号来表示。
列表方法
方法 | 说明 |
---|---|
list.append(s) | 将元素x添加至列表尾部 |
list.extend(L) | 将列表L中所有的元素添加至列表尾部 |
list.insert(index,x) | 在列表指定位置index处添加元素x |
list.remove(x) | 在列表中删除首次出现的指定元素 |
list.pop([index]) | 删除并返回列表对象指定位置的元素 |
list.clear() | 删除列表中所有元素,但保留列表对象 |
list.index(x) | 返回值为x的首个元素的下标 |
list.count(x) | 返回指定元素x在列表中的出现次数 |
list.revrse() | 对列表元素进行原地倒序 |
list.sort() | 对列表元素进行原地排序(升序、降序) |
list.copy() | 返回列表对象的浅拷贝 |
除了list.copy()以外,其他的都不会产生新的列表,也不会改变列表的ID
列表推导式
[ 新元素表达式 for 临时变量 in 可迭代对象 if 条件表达式]
>>>multiples = [i for i in range(30) in i % 3 is 0]
>>>print(multiples)
[0, 3, 6, 9, 12, 15, 18, 21, 24, 27]
>>>[x*x for x in range(6) if x % 2 == 0]
[0,4,16]
>>> x = [3,5,3,7]
>>> [x.index(i) for i in x if i == 3]
[0, 0]
集合
集合数据类型是没有顺序的简单对象的聚集,且集合中元素不重复
Python集合数据类型包括可变集合对象(set)和不可变集合对象(frozenset)
集合的定义{x1,[x2,…,xn]}
{}表示空的字典,因为字典也用花括号定义,空集为set()
集合与数学中集合的概念一致,即包含0个或多个数据项的无序组合,集合中元素不可重复,元素类型只能是固定数据类型,例如:整数、浮点数、字符串、元组等,列表、字典和集合类型本身都是可变数据类型,不能作为集合的元素出现。
集合类型的十个操作符
操作符 | 描述 |
---|---|
S - T或S.difference(T) | 返回一个新集合,包括在集合S中但不在集合T中的元素 |
S -= T或S.difference_update(T) | 更新集合S,包括在集合S中但不在集合T中的元素 |
S & T或S.intersection(T) | 返回一个新集合,包括同时在集合S和T中的元素 |
S =& T或S.intersection_update(T) | 更新集合S,包括同时在集合S和T中的元素 |
S ^ T或s.symmetric_difference(T) | 返回一个新集合,包括集合S和T中的元素,但不包括同时在其中的元素 |
S ^ =T或s.symmetric_difference_update(T) | 更新集合S,包括集合S和T中的元素,但不包括同时在其中的元素 |
S | T或S.union(T) | 返回一个新集合,包括S和T中的所有元素 |
S |= T或S.update(T) | 更新集合S,包括S和T中的所有元素 |
S <= T或S.issubset(T) | 如果S与T相同或S是T的子集,返回True,否则返回False,可用S<T判断S是否是T的真子集 |
S >= T或S.issuperset(T) | 如果S与T相同或S是T的超集,返回True,否则返回False,可用S>T判断S是否是T的真超集 |
上述操作符表达了集合类型的4种基本操作,交集(&)、并集( | )、差集( - )、补集( ^ ),操作逻辑与数学定义相同
集合类型操作函数或方法
函数或方法 | 描述 |
---|---|
S.add(x) | 如果数据项x不在集合s中 |
S.clear(x) | 移除S中所有数据项 |
S.copy() | 返回集合S的一个拷贝 |
S.pop() | 随机返回集合S中的一个元素,如果S为空,产生KeyError异常 |
S.discard(x) | 如果x在集合S中,移除该元素,如果x不在不报错 |
S.remove(x) | 如果x在集合S中,移除该元素,不在产生KeyError异常 |
S.isdisjoint(T) | 如果集合S与T没有相同元素,返回True |
len(S) | 返回集合S元素个数 |
x in S | 如果x是S的元素,返回True,否则返回False |
x not in S | 如果x不是S的元素,返回True,否则返回False |