基础数据类型补充

基础数据类型补充

  1. 字符串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"的第一个索引,查找不到的时候报错
    
  2. 列表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就降序
    
  3. 元组tuple

    tu = (1,2,3,4,5)
    tu1 = tuple("12345") # 定义的一种方式
    tu.count(1)  # 统计
    tu.index(1)  # 通过元素找索引,找不到就报错
    
  4. 字典dict

    dic = {1:"a",2:"b"}
    dic1 = dict(k=1,k1=2)  # 定义的一种方式
    dic.popitem()   # 随机删除,返回删除的值,3.6版本后默认删除最后一个键值对
    dic2 = dict.fromkeys("123",1)  # 批量创建字典,迭代key,value相同,指向同一内存地址
    
  5. 结合set

    s = set("1234")  # 定义的一种方式
    
  6. 类型转换

    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()分割
    除字典外,容器数据类型都能直接相互转换
    
  7. 总结

    有序: str,int,bool,list,tuple
    无序: dict,set
    可变: list,dict,set
    不可变: str,int,bool,tuple
    
    访问方式:
    直接访问: int,bool,set
    顺序访问:str,list,tuple
    键访问: dict
    
  8. 坑人的删除

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循环迭代字典过程中改变字典的大小会报错
posted @ 2019-11-21 11:58  豆子V  阅读(150)  评论(0编辑  收藏  举报