3.9各类型数据方法补充,转换,分类,编码,坑中菜

3.9.1数据类型方法补充

1.str:不可变

补充方法
  1. s1.capitalize():首字母大写

    s1 = "alex"
    s2 = s1.capitalize()
    print(s1)
  2. s1.title(): 每个单词首字母大写

    s1 = "alex wusir"
    print(s1.title())
  3. s1.swapcase():大小写反转

    s1 = "AlEx"
    print(s1.swapcase())
  4. s1.center():居中 -- 填充

    s1 = "alex"
    print(s1.center(20,"-"))
  5. s1.find()查找,从左向右,只查找一个,不存在返回‘-1’

    s1.index():查找不存在的报错

    #两种均返回第一次找到的下标
    s1 = "alex"
    print(s1.find("a"))
    print(s1.index('e'))
  6. 拼接'_'.join(s1)(列表中必须全是可迭代对象)

    s1 = "al3x"
    print("_.jion(s1)")

2.list:

2.1定义方式:list("123")(可迭代)
2.2‘+’ ‘*’ 开辟新空间
2.3补充其他方法:
  1. list1.sort()排序(升序)

  2. 降序

    1. list1.reverse()(反转)
    2. list1.sort(reverse=True)
    list1 = [1,12,5,6,1,63,,4,8,2,1,9]
    list1.sort()#1.升序
    print(list1) list1.reverse()#2.反转
    print(list1) list1.sort(reverse=True)#降序
    print(list1)

3.tuple:

  1. tu = ("12")#数据类型是()中数据本身的类型

    print(type(tu))

  2. tu = (1,)

    print(tu)

  3. 元组可以 '+', '*',不可变公用,可变也公用

4.dict

    1. 定义:print(dict(k1=1,k2=2))

    2. 随机删除:popitem

      dict1 = {'k1':1,'k2':2}
      dict1.popitem()
      print(dict1)
      print(dict1.popitem())#返回被删除的键值对,官方说随机删除,但是实际是默认删除最后一个(python3.6)
    3. dict1.formkeys():批量添加(可迭代的键,共用的值)

      dict1 = {}
      dict1 = dict1.fromkeys("123",[12])#批量添加键值对,需要字典在前面接着
      dict1 = dict.fromkeys("123",[12])#也可以用dict.
      print(dict1)
      #批量添加必须有字典在前面接着

5.set

  1. set() -- 空集合

  2. {} -- 空字典

  3. 定义集合

    set('alex')#迭代添加

    print(set('alex'))

6.bool

​ bool:-->False

​ 1.False

​ 2.数字:0

​ 3.字符串:""

​ 4.列表:[]

​ 5.元组:()

​ 6.字典:{}

​ 7.集合:set()

​ 8.其他:None

7.格式化

​ 1.%s

​ 2.f

​ 3.s.format()#填充

#按照顺序位置填充
s1 = "alex{},{},{}"
print(s.format(1,2,3) #按照索引进行填充
s1 = "alex{2},{0},{1}"
print(name.format('a','b','c')) #按照关键字填充
s1 = "alex{a},{b},{c}"
print(name.format(a = 1, c = 3, b = 21))

3.9.2数据之间转换

#str --> list
str1 = "alex"
list1 = str1.split()
#list --> str
list1 = ['1','2','3']
str1 = ''.join(list1)
#dict --> str
dict1 = {'1':1}
str1 = str(dic)
print(str(dic),type(str(dic))
#str --> dict直转是错误的,需要切片添加
print(dict("{1:1}"))#错误

3.9.3数据类型细分

  1. 可变:list,dict,set
  2. 不可变:int,bool,str,tuple
  3. 有序:list,tuple,str,int,bool
  4. 无序:dict,set
  5. 取值方式:
    1. 索引:str,list,tuple
    2. 直接:set,int,bool
    3. 键:dict

3.9.4坑中菜

  1. 删除list正确应从后向前删
lst = [1,2]
for i in lst:
lst.append(3)
print(lst)#死循环 lst = [1,2,3,4]
count = 0
for i in lst:
count += 1
lst.pop()
#这用方法只循环了两次,输出count一目了然 #lst.pop(0)
print(i)
#这种方法也只循环了两次,输出i一目了然(i在for循环中是递增的。)
#lst.remove(i)
print(i)
#这种方法和上一种差不多
print(lst)
print(count) #成功1.
lst = [1,2,3,4]
for i in range(len(lst)):
lst.pop()
print(lst)
#成功2.
lst = [1,2,3,4,5,6]
lst1 = lst.copy()
for i in lst1:
lst.remove(i)
print(lst)
  1. 删除字典坑:

    #字典(和集合)在迭代的过程不能更改键值对的数量,可改可查,可同时增删。
    dic = dict.fromkey("123456",1)
    for i in dic:
    dic.pop(i)
    print(dic) #正确:
    dic = dict.fromkey("123456",1)
    dict1 = dic.copy
    for i in dict1:
    dic.pop(i)
    print(dic) #正确:同时增删
    dic = dict.fromkeys("123",1)
    print(dic)
    for i in dic:
    dic.pop(i)
    dic.setdefault(i,i)
    print(dic)

3.9.5二次编码:

  1. 密码本:

    1. ascii -- 没有中文
    2. gbk -- 英文 8b(位) 1b(字节) 中文 16b (位) 2b(字节)
    3. unicode -- 英文 16b 2b 中文 32b 4b
    4. utf -8 -- 英文 8b 1b 欧洲 16b 2b 亚洲 24b 3b
name = "alex"
print(name.encode("utf-8"))#编码
print(name.encode("gbk"))
print(name.encode("shift-jis")) name = "你好啊"
s1 = name.encode("utf-8")
print(name.encode("utf-8"))#编码
print(name.decode("utf-8"))#解码
#用什么编码,就用什么解码
print(name.encode("gbk"))
print(name.encode("shift-jis"))#日文,不支持中文

最新文章

  1. 转--脉络清晰的BP神经网络讲解,赞
  2. 【leedcode】 Longest Palindromic Substring
  3. 用ADO.NET存入数据库
  4. silverlight: http请求的GET及POST示例
  5. cmake 编译 c++ dll 的一个例子(更新2:增加 python 调用方法)
  6. cf251.2.C (构造题的技巧)
  7. 安装eclipse的hadoop开发环境
  8. Java文件获取路径方式:
  9. OAuth2.0和SSO授权
  10. discuz门户首页-header文件模板语法详解和注释
  11. 智能手机取证利器再进化-UFED Cloud Analyzer
  12. FILETIME, SYSTEMTIME 与 time_t 相互转换
  13. HR系统+人脸识别
  14. [Baltic2004]数字序列
  15. vue-router 中踏过的坑
  16. MVC 移动识别
  17. C#正则表达式语法教程
  18. Android--Led_Demo_APK控制LED灯
  19. Window系统远程连接Linux服务器(非桌面系统)
  20. Windows 7系统垃圾清理自写程序

热门文章

  1. JS 浮点加减乘除运算
  2. Microsoft .NET Framework 3.5 SP1安装错误 1603
  3. Redis系统管理
  4. 静态编译 Qt 5.6
  5. getch(),getche(),getchar()的区别
  6. Python基础,day2
  7. 分布式数据库中间件 MyCat 搞起来!
  8. Android native进程间通信实例-binder篇之——用parcel传输数组
  9. Ubuntu --- 安装lnmp(php7.0)
  10. 08 JS的事件流的概念(重点)