Python元组与列表,集合与字典详解
2019-03-28 22:13
316 查看
一、元组与列表
元组是序列类型中比较特殊的类型,因为它一旦被创建就不能被修改。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]
二、集合与字典
- 集合数据类型是没有顺序的简单对象的聚集,且集合中元素不重复
- Python集合数据类型包括可变集合对象(set)和不可变集合对象(frozenset)
- 集合的定义{x1,[x2,…,xn]}
- {}表示空的字典,因为字典也用花括号定义,空集为set()
- 集合中元素不可重复,元素类型只能是固定数据类型,例如:整数、浮点数、字符串、元组等,列表、字典和集合类型本身都是可变数据类型,不能作为集合的元素出现。
例:创建集合对象示例
>>> {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<T判断S是否是T的真子集 |
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 |
字典类型未完待续。。。
相关文章推荐
- python中的集合详解(列表List,元组Tuple,字典,set)
- Python基本数据结构与用法详解【列表、元组、集合、字典】
- 【第3章】Python容器:列表、元组、字典与集合
- 第三章 Python容器:列表、元组、字典与集合
- Python列表 元组 字典 集合
- Python 列表 元组 字典 集合 区别(一)
- Python 入门学习 -----变量及基础类型(元组,列表,字典,集合)
- python基础系列教程——数据结构(列表、元组、字典、集合、链表)
- python 列表list 元组tuple 字典dict 集合set 介绍
- python 元组、字符串及中文乱码处理、字典、集合详解
- python基础--列表,集合,元组,字典
- Python黑帽编程2.3 字符串、列表、元组、字典和集合
- Python3.x下列表,元组,集合,字典等工作中常用操作
- Python中几个容易混淆的概念:列表、元组、字典、集合
- python 的 集合,字典,元组,列表
- 2.python基础知识(分支循环、列表、元组、字典、集合、函数)
- Python学习笔记Ⅲ —— 字符串、列表 、字典 、元组 、集合
- Python基础-列表_元组_字典_集合
- python的元组,列表,字典,集合大综合
- python列表,元组,集合,字典