元组是序列类型中比较特殊的类型,因为它一旦被创建就不能被修改。Python中元组采用逗号和圆括号来表示。
序列类型
操作符 | 描述 |
---|---|
x in s | 如果x是s的元素,返回True,否则返回False |
x not in s | 如果x是s的元素,返回True,否则返回False |
s + t | 连接s和t |
s * n 或 n * s | 将序列s复制n次 |
s [ i ] | 索引,返回序列的第i个元素 |
s [ i : j ] | 分片,返回包含序列s第i到j个元素的子序列(不包含第j个元素) |
s [ i : j : k ] | 步骤分片,返回包含序列s第i到第j个元素以j为步数的子序列 |
len(s) | 序列s的元素个数(长度) |
min(s) | 序列s中的最小元素 |
max(s) | 序列s中的最大元素 |
s.index(x[,i [ ,j ] ]) | 序列s中从i开始到j位置中第一次出现元素x的位置 |
s.count(x) | 序列s中出现x的总次数 |
>>> a = "cat","dog","tiger","human"
>>> a
('cat', 'dog', 'tiger', 'human')
>>> b = ("red",0x001100,"blue",a)
>>> b
('red', 4352, 'blue', ('cat', 'dog', 'tiger', 'human'))
>>> b[2]
'blue'
>>> b[-1][2]
'tiger'
列表方法
方法 | 说明 |
---|---|
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
列表推导式
[ 新元素表达式 or 临时变量 in 可迭代对象 if 条件表达式 ]
>>> multiples = [i for i in range(30) if 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]
例:创建集合对象示例
>>> {1,2,1}
{1, 2}
>>> {1,'a',True}
{1, 'a'}
>>> {1.2,True}
{1.2, True}
>>> set()
set()
>>> set('Hello')
{'o', 'H', 'e', 'l'}
例:集合中元素的判断示例
>>> s = set('Hello')
>>> 'h' in s
False
>>> 'o' not in s
False
由于集合元素独一无二,使用集合类型能够过滤掉重复元素,set(x)函数可以用于生成集合
>>> w = set('apple')
>>> w
{'e', 'a', 'p', 'l'}
>>> v = set(("cat","dog","tiger","human"))
>>> v
{'cat', 'tiger', 'human', 'dog'}
集合类型有10个操作符
操作符 | 描述 |
---|---|
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 |
S >= T或S.issuperset(T) | 如果S与T相同或S是T的超集,返回True,否则返回False,可用S>T判断S是否是T的真超集 |
上述操作符表达了集合类型的4种基本操作,交集(&)、并集( | )、差集( - )、补集( ^ ),操作逻辑与数学定义相同
例:集合的运算示例
>>> s1 = {1,2,3}
>>> s2 = {2,3,4}
>>> s1|s2
{1, 2, 3, 4}
>>> s1&s2
{2, 3}
>>> s1.intersection(s2)
{2, 3}
集合类型有10个操作函数或方法
函数或方法 | 描述 |
---|---|
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 |
字典类型未完待续。。。