Python-集合、序列、字典的分析
1.集合
集合元素不可更改,不能是可变数据类型
集合是多个元素的无序组合,{ },建立可用{}或者set(),建立空集合,必须使用set()
集合见操作:交&、并|、补^、差- 属于、不属于(<=、<、>=、>)
判断元素是否在集合中;数据去重
A = {"py", 123, ("py", 123)} # {"py", 123, ("py", 123)}#
B = set("pypy123") # {'p', '2', 'y', '3', '1'}
C = {"py", 123, "py", 123} # {123, 'py'}
print(A | B)
print(A - B)
print(A & B)
print(A ^ B)
A ^= B
print(A)
print(A >= B)
#output
{'2', '3', 'p', ('py', 123), 'py', 'y', '1', 123}
{123, 'py', ('py', 123)}
set()
{('py', 123), 'py', 'y', '2', '1', '3', 'p', 123}
{('py', 123), 'py', 'y', '2', '1', '3', 'p', 123}
True
在了解了基础之后,这里列举了一些其他的函数::
# S.add(x)增加x到S中
# S.discard(x)移除x
# S.remove(x)移除x,若没有x则报错KeyError
# S.clear()移除所以元素
# S.pop()随机返回一个元素,并更新S,若S为空则报错KeyError
# S.copy返回一个S
# len(S)返回S中元素的个数
# x in S判断x是否在S中
# x not in S判断x是否不在S中
# set(x)将x转变为集合
2.序列
序列是具有先后关系的一组元素
是一维元素向量,元素类型可以不同,用序号引导(0开始)
序列是一个基类类型,包括字符串类型、元组类型、列表类型
序号包括正向递增序号和反向递减序号 # 数据表示-》元素遍历----主要用处
元组类型---数据保护
# x in S判断x是否在S中
# x not S判断x是否不在S中
# s + t连接两个序列s和t
# s * n 或 n * s将序列s复制n次
# s[j]索引
# s[i:j] 或 s[i: j: k]切片(k步长)
# len(S)返回S中元素的个数
# min(S)/max(S)返回序列S中最小(大)元素,需要可比较
# S.index(x)/S.index(x,i,j)返回序列S从i到j位置中第一次出现x的位置
# S.count(x)统计x出现的次数
*元组::
元组一旦被创建就不能被修改
用()或者tuple()创建
接下来先看一些元组的例子::
create = "cat", "dog", "tiger"
print(create)
print(create[::-1])
color = (0x001100, create)
print(color)
print(color[-1][2][0])
#output
('cat', 'dog', 'tiger')
('tiger', 'dog', 'cat')
(4352, ('cat', 'dog', 'tiger'))
t
*列表::
列表创建后可以别随意修改
使用[]或者list()创建
接下来先看一些列表的例子::
lr = ["cat", "dog", "tiger", 1024]
lt = lr # 单纯=表示引用
lt[0] = "python" # lt[i:j:k]=lt
print(lr)
# del ls[i]/del ls[i:j:k]删除
# ls += lt将lt增加到ls中去
# ls *= n将ls重复n次
lr[1:2] = [1, 2, 3, 4]
print(lr)
del lr[::3]
print(lr)
print(lr * 2)
print(lr)
#output
['python', 'dog', 'tiger', 1024]
['python', 1, 2, 3, 4, 'tiger', 1024]
[1, 2, 4, 'tiger']
[1, 2, 4, 'tiger', 1, 2, 4, 'tiger']
[1, 2, 4, 'tiger']
在了解了基础之后,这里列举了一些其他的函数::
# ls.append(x)再最后增加一个元素
# ls.clear()删除所以元素
# ls.copy()返回一个S
# ls.insert(i, x)在第i个位置插入一个x
# ls.pop(i)将第i个位置的元素取出并删除
# ls.remove(x)删除第一个出现的x
# ls.reverse()元素反转
lr.append(123)
print(lr)
lr.insert(3, "human")
print(lr)
lr.reverse()
print(lr)
#output
[1, 2, 4, 'tiger', 123]
[1, 2, 4, 'human', 'tiger', 123]
[123, 'tiger', 'human', 4, 2, 1]
3.字典
字典是键值对的集合,键值对之间无序
采用大括号{}和dict()创建,键值对用冒号:表示
键<>:<>值
接下来先看一些列表的例子::
# del d[k]删除
# k in d 判断是否存在
# d.keys()返回字典d中所有的键信息
# d.values()返回字典d中所有的值信息
# d.items()返回字典d中所有的键值对信息
d = {"中国": "北京", "美国": "华盛顿", "法国": "巴黎"}
print("中国" in d)
print(d.keys()) # 可遍历
print(d.values())
#output
True
dict_keys(['中国', '美国', '法国'])
dict_values(['北京', '华盛顿', '巴黎'])
在了解了基础之后,这里列举了一些其他的函数::
# d.get(k, <default>)键k存在,则返回相应值,不存在则返回<default>值
# d.pop(k, <default>)键k存在,则取出相应值,不存在则返回<default>值
# d.popitem()随机取出一个键值对,以元组形式返回
# d.clear()删除所有元素
# len(d)返回d中元素的个数
# d["2"] = 2新增元素 d[key]