python_内建结构
列表
- 查
- 索引
- 切片
- .count查某个元素的出现次数
- .index根据内容找其对应的位置
- 增加
- a.append()
- a.insert(index,"内容")
- 修改
- a[index] = "新值"
- a[start:end] = [a,b,c]
- 删除
- remove("内容")
- pop(index)
- 不指定索引会默认删除最后一个
- del a[index]
- a.clear() 清空列表中的内容
- 排序
- sort()
- a.sort() 调用a对象的方法
- b = sorted(a) 调用内置方法
- reserver()
- 身份判断
- type(a) is list
- count
- 统计列表中数据的个数
- extend方法可以在列表的末尾一次性追加另一个序列中的多个值
- a.extend(b) 扩展
- c = a + b 用加号返回一个全新的列表
tuble(元组)
- 元组被称为只读列表,即数据可以被查询,但不能被修改
- 另外,元组的意义还在于,元组可以在映射(和集合的成员)中当作键使用--而列表则不行,元组作为很多内建函数和方法的返回值存在。
- 创建一个元素的时候一定要加个逗号(22,)
不可变类型
- 整形,字符串,元组
可变类型
- 列表,字典
dictionary(字典)
-
字典的键是不可变类型,值是可变类型或者是不可变类型
-
两大特点
- 无序
- 键唯一
-
增加
- dic["age"] = 18
- dic.setdefault("age",34)
- 如果age这个键有那么不修改,如果没有就增加值为34
- 返回值为真实的值
-
查
- 通过键去查找
- dic.keys()
- 查找字典所有的键
- 返回的是:'dict_keys'类型
- dic.values()
- 查找的是所有的值
- 返回的是:'dict_values'类型
- dic.items()
- 查找的是所有的键值队
- 返回的是:'dict_items'类型
-
改
- 跟列表差不多
- dic3.update(dic2)
- 如果dic3和dic2有相同的键则会更新dic2中的内容
- 和列表中的append差不多
-
删
- del dic[键]
- 删除的是键值对
- dic.clear()
- 删除成一个空字典
- dic.pop(键)
- 有返回值同list
- dic.popitem()
- 随机删除某组键值对,并以元组方式返回值
- 没什么用
- del dic
- 删除整个字典对象
- del dic[键]
-
其他操作以及涉及到的方法
- 创建的第三种方式
- dic = dict.fromkeys(['host1','host2'],'test') 输出格式如下:
- dic = dict.fromkeys(['host1','host2'],'test') 输出格式如下:
- 创建的第三种方式
-
排序 sorted(dic)、sorted(dic.values)、sorted(dic.items)
- 如果键是数字则根据数字的的大小排序
- 没有dic.sort()
-
遍历
-
效率高的
- for i in dic:
- print(i,dic[i])
- for i in dic:
-
效率低一些的
- for i in dic.items(): # 会把字典转换为列表的过程,如果数据量少还可以,多的话就费时间
- print(i)
- for k,v in dic.items():
- print(k,v)
- for i in dic.items(): # 会把字典转换为列表的过程,如果数据量少还可以,多的话就费时间
-
工厂函数(创建内建结构的方式)
- a = list((1,2,3))
- b = dict((("name","jay"),))
- b = dict((["name","jay"],))
- b = dict([["name","jay"],])
字符串
- 可以通过索引加切片的形式
- 格式化字符串、
- c = "---".join([a,b,c])
- 通过“---”把a,b,c字符创拼接
- 处理地址url会用到
- c.count("l") # 统计元素个数
- c.capitalize() # 首字母大写
- c.center(50,"-") # 居中
- c.encode
- c.endswith("aa") # 以某个内容结尾
- c.startwith('tty') # 以某个内容开头
- c = "he\tllo kitty"
- c.find("t") # 查找"t"在第几个位置,并将索引值返回
- c.format() # 格式化输出
- c.format_map()({'name':jay})
- c.index('qqq') # 和find的区别是加入字符串没找到就会报错
- c.isalnum()# 判断是否包含字母和数字
- c.isdecimal() # 判断是否是十进制的数
- c.isdigit() # 判断是否是一个整型
- c.isidentifier() # 判断是否是非法字符如数字不能开头
- c.islower() # 判断字符串是否全是小写
- c.isupper() # 判断字符串是否全是大写
- c.isspace() # 判断是否全是空格
- c.istitle() # 判断是否是标题
- 标题的特点是每个单词的首字母大写
- c.lower() # 把字符串全部改为小写
- c.upper() # 把字符串全部改为大写**
- c.swapcase() # 把大写改为小写,把小写改为大写
- c.ljust(20,'-') # 左对齐
- c.rjust(20,'-') # 右对齐
- c.strip() # 去除字符串的换行符和空格、制表符
- c.lstrip() # 去除字符串左边的换行符和空格、制表符
- c.rstrip() # 去除字符串右边的换行符和空格、制表符
- "my title".replace('title','lession') # 把字符串中的title替换成lession
- "My title title".rfind('t') # 最右边的"t"
- c.split("字符",1) # 返回分隔后的字符串列表,1代表分隔一次
- c.title() # 变成标题格式
集合
-
创建方式只有一种
- s = set([13,45,667])
-
重复的只会保留一个☆
-
元素必须是可哈希的及元素是不可变类型
-
分类
- 可变集合(用的较多)
- 本身非可哈希(可变的类型)
- 不可变集合
- 可变集合(用的较多)
-
添加
- s.add("uu") # 添加双引号中的元素
- s.update('aop') # 分别添加元素a,元素o,元素p
- s.update((231,132,"fdsafa") # 把以逗号分隔的元素添加到集合中
-
删除
- s.pop()
- s.clear()
- del s
-
关系测试☆
-
交集
- a & b
- a.intersection(b)
-
并集
- a | b
- a.union(b)
-
差集
- c = a-b
- a.difference(b)
-
反向交集
- c = a ^ b
- a.symmetric_difference(b)
-
父集
- a > b
- a.issuperset(b) # a是否包含b
-
子集
- a < b
- a.issubset(b)