字符串 str
- s = "aa111aa"
- print(s.capitalize()) # 首字母大写, 只有第一个字母大写
- print(s.title()) # 每个单词首字母大写, 单词中间用特殊字符或中文隔开
- print(s.count("a")) # 统计 "a" 出现的次数
- print(s.swapcase()) # 大小写转换
- print(s.find("a")) # 查找 "a" 的第一个索引, 查找不到的时候返回 - 1
- print(s.index("a")) # 查找 "a" 的第一个索引, 查找不到的时候报错
列表 list
- li = [1,2,3,4]
- l2 = list("1234") # 定义的一种方式
- print(li.count(1)) # 统计 1 出现的次数
- print(li.index(1)) # 查找 1 的第一个索引, 查找不到就报错
- li.reverse() # 原地反转
- li.sort(reverse=True) # 排序, 默认升序, 加 True 就降序
元组 tuple
- tu = (1,2,3,4,5)
- tu1 = tuple("12345") # 定义的一种方式
- tu.count(1) # 统计
- tu.index(1) # 通过元素找索引, 找不到就报错
字典 dict
- dic = {
- 1:"a",2:"b"
- }
- dic1 = dict(k=1,k1=2) # 定义的一种方式
- dic.popitem() # 随机删除, 返回删除的值, 3.6 版本后默认删除最后一个键值对
- dic2 = dict.fromkeys("123",1) # 批量创建字典, 迭代 key,value 相同, 指向同一内存地址
结合 set
s = set("1234") # 定义的一种方式
类型转换
str => int : 字符串中必须全部都是十进制的数字
int => str : 直接转换
- str => list :
- s = "1234"
- lst = list(s) => ["1","2","3","4"]
或用 split() 切割
list => str : 使用 join 进行拼接, 元素中不能有 int
list => tuple : 直接转换
set => list : 直接转换
总结:
字符串 -- 数字 : 字符串中必须都是十进制的数字
数字 -- 字符串 : 直接转换
列表 -- 字符串 :join() 拼接 -- 可迭代的对象中不能出现数字
字符串 -- 列表 :split() 分割
除字典外, 容器数据类型都能直接相互转换
总结
有序: str,int,bool,list,tuple
无序: dict,set
可变: list,dict,set
不可变: str,int,bool,tuple
访问方式:
直接访问: int,bool,set
顺序访问: str,list,tuple
键访问: dict
坑人的删除
- li = [1,2,3,4,5]
- # 面试题: 要求用一个 for 循环对删除上述列表索引为奇数位置的元素
- for el in range(len(li)-1,-1,-1):
- if el % 2 == 1:
- li.pop(el)
- print(li)
- # 尽量不要在 for 循环遍历列表的同时修改列表本身的大小
- # for 循环迭代字典过程中改变字典的大小会报错
来源: http://www.bubuko.com/infodetail-3297478.html