python语言所有的变量名都是类似于C语言中的指针,所以简单的赋值语句A=B 只是让A和B指向了同一个内存地址,指向了同一个元素。所以在python语言中,任意变量名可以随时赋值为任意其他类型的元素;集合序列也可以包含不同数据类型的元素。(因为实质上集合序列保存的都是指针,指针指向的元素才是不同的类型)
A.集合
构造集合
集合中的元素是无序的、不能重复的、不可修改的,只允许添加元素或减少元素。
>>> A= {"python",123,("python",123),123,'1','2','3'}
>>> A
{'1', ('python', 123), '3', '2', 123, 'python'}
>>> B=set("pypy123")
>>> B
{'1', '2', 'y', 'p', '3'}
>>>>>> D=B.copy()
>>> D
{'1', '2', 'y', 'p', '3'}
运算、操作符和属性方法
>>> A | B
{'1', '2', 'y', 'p', ('python', 123), '3', 123, 'python'}
>>> A - B
{123, 'python', ('python', 123)}
>>> A & B
{'1', '2', '3'}
>>> A ^ B
{'p', 'python', ('python', 123), 123, 'y'}
>>> C >=B
False
>>> C <=B
True
>>> C <B
True
>>> B >C
True
>>>
>>> B.add('a')
>>> B
{'1', '2', 'y', 'p', 'a', '3'}
>>> B. discard('1')
>>> B
{'2', 'y', 'p', 'a', '3'}
>>> B. discard('1')
>>> B
{'2', 'y', 'p', 'a', '3'}
>>> B.remove('2')
>>> B
{'y', 'p', 'a', '3'}
>>> B.remove('2')
Traceback (most recent call last):
File "", line 1, in <module>
B.remove('2')
KeyError: '2'
>>>
>>> B.pop()
'y'
>>> B
{'p', 'a', '3'}
>>> B.clear()
>>> B
set()
>>> B.pop()
Traceback (most recent call last):
File "", line 1, in <module>
B.pop()
KeyError: 'pop from an empty set'
>>> len(D)
5
>>> '1' in D
True
>>> '1' not in D
False
B.序列
序列是有顺序的组合类型,所以允许有相同元素在不同次序共通存在。
序列类型是Python的基类类型,元祖类型、列表列表、字符串类型都是序列类型的衍生。序列类型的运算操作方法广泛适用与元祖、列表、字符串
运算、操作符和属性方法
操作符 |
描述 |
x in S |
判断序列S是否包含元素x |
x not in S |
x in S 的值取反 |
S+T |
连接序列S和T |
Sn 或 nS |
序列S重复n次 |
S[i] |
返回S序列中第i个元素 |
S[i:j:k] |
返回S的切片,区间包括i,不包括j,步长为k |
属性和方法 |
描述 |
len(S) |
返回序列S的元素个数 |
min(S),max(S) |
返回序列中最小、最大的元素(如果序列内元素不可比较,此函数会产生异常报错) |
S.index(x)或S.index(x,i,j) |
返回序列(或切片[i,j) )中第一次出现元素x的位置 |
S.count(x) |
返回序列S中出现元素x的总次数 |
1.元祖
构造元祖
>>> A = 1,2,3
>>> A
(1, 2, 3)
>>> B=("Hello",0x001100,A)
>>> B
('Hello', 4352, (1, 2, 3))
>>> C=tuple("HELLO")
>>> C
('H', 'E', 'L', 'L', 'O')
>>>
运算、操作符和属性方法
元祖的运算操作符属性方法继承自“序列”,且没有扩展出来的其他方法
2.列表
构造列表
>>> A=['cat','dog','tiger',1024]
>>> A
['cat', 'dog', 'tiger', 1024]
>>> B=A
>>> B
['cat', 'dog', 'tiger', 1024]
>>> B[1]='python'
>>> A
['cat', 'python', 'tiger', 1024]
>>> B
['cat', 'python', 'tiger', 1024]
>>> C=list("Hello")
>>> C
['H', 'e', 'l', 'l', 'o']
>>>
运算、操作符和属性方法
操作符 |
描述 |
ls[i:j]=lt |
用lt替换[i:j)区间 |
del ls[i] |
删除指定下标所在元素 |
del ls[i:j:k] |
以步长k删除指定元素 |
>>> ls=list("0123456789")
>>> ls
['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
>>> ls[9:]=list("9ABCDEF")
>>> _
['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F']
>>> del ls[15]
>>> _
['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E']
>>> del ls[::3]
>>> _
['1', '2', '4', '5', '7', '8', 'A', 'B', 'D', 'E']
属性和方法 |
描述 |
ls.append(x) |
列表最后增加元素x |
ls.copy |
返回列表的副本 |
ls.clear() |
清空列表 |
ls.insert(i,x) |
在列表指定位置插入元素 |
ls.pop(i) |
返回列表中第i个元素,并从列表中删除它 |
ls.remove(x) |
删除列表中第一个找到的元素x,并删除它 |
ls.reverse() |
列表反转 |
3.字符串
构造字符串
C.字典类型
构造字典
>>> d = {"中国":"北京","美国":"华盛顿","法国":"巴黎"}
>>> d
{'中国': '北京', '美国': '华盛顿', '法国': '巴黎'}
>>> d['中国']
'北京'
>>> Empty = {}
>>> type(Empty)
<class 'dict'>
运算、操作符和属性方法
函数和方法 |
描述 |
len(d) |
返回字典大小 |
d.clear() |
清空字典 |
del d[k] |
删除键k对应的键值对 |
k in d |
判断是否存在键为k的键值对 |
d.keys() |
返回所有键信息 |
d.values() |
返回所有值信息 |
d.items() |
返回所有键值对 |
d.get(k,) |
返回k对应键值,如果没有k,返回值 |
d.pop(k,) |
相当于d.get(k,)+del d[k] |
d.popitem() |
随机取出一组键值对,以元祖类型返回 |