基础数据类型补充
基础数据类型补充
-
字符串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循环迭代字典过程中改变字典的大小会报错