数据类型补充、"雷区"、编码

1.数据类型补充

str:
#字符串数据类型补充

s1=str(123)    #常用于类型转换
print(s1) #capitalize()首字母大写
s='abc'
s1=s.capitalize()
print(s1) #title() 每个单词首字母大写, 需要被隔开
s2=s.title()
print(s2) #count() 统计某个字符串出现的次数
s3=s.count('s')
print(s3) #大小写转换
s4=s.swapcase()
print(s4) #查找
s='alex taibai'
s1=s.find('a') # 从左往右找, 只找到第一个. 查找不到的时候返回 -1
s2=s.index('a') # 查找不到用 ,报错
print(s1,s2) #center () 字符居中,长度20其他位置以*为填充
s1=s.center(20,'*')
print(s1)
list:
#列表数据类型补充
li=list('123231122114') # 生成列表 ,常用语类型转换
print(li) #统计
print(li.count('1')) #反转
li.reverse() # 对列表容器操作
print(li) # 打印列表容器 #排序
li.sort() #升序
print(li)
li.sort(reverse=True) #降序
print(li)
tuple:
# tu=tuple('1234123') # 定义元组 , 常用于数据转换

#统计
a=tu.count('1')
print(a) #查找
print(tu.index('1'))
dict:
#dict
dic=dict(k=1,k1=2,k2=3) # 一种定义方式
print(dic) #随机删除
dic1={'k1':'1','k2':'2','k3':'41'}
dic1.popitem() #在python3.6版本 ,默认删除最后一个键值对
print(dic1) #批量创建字典,fromkeys第一个参数是可迭代对象, 第二个参数是value
#fromkeys 是一个类方法,dict直接调用,生成一个新的字典
dic2=dict.fromkeys('123',[1])
dic2['1'][0]=2 # 此处有深浅拷贝的知识
print(dic2)
set:
#集合
s=set('1234') # 常用语类型转换
print(s)
数据类型转换:
#数据类型转换

###str  ---> int     #必须是十进制的数字, 字符串中包含小数不能转换成int
s='123'
a=int(s)#必须是数字 ###str--->list
li=list(s)
print(li) s='abc'
print(s.split()) ###list-->str
li=['123']
s="".join(li) # join 不能有数字
print(s) ###list ->tuple
li=[1,2,3]
tu=tuple(li)
print(tu) ###tuple--->list
tu = (1,2,3)
li = list(tu)
print(li) ###set-->list
s={1,2,3,4}
print(list(s)) ###list-->set
li=[1,2,3]
s=set(li)
print(s)

###数据类型转换总结

  1. str -->数字 必须是数字
  2. 数字 --->字符串 ,没要求
  3. 列表转成字符串 ,join-->可迭代的对象中不能出现数字
  4. 字符串转成列表 split
  5. 除字典外 ,容器都数据类型可互相转换

#访问方式:

​ 直接访问: int ,bool,set

​ 顺序访问: list ,tuple,str

​ 通过key dict

2.以后会遇见的坑

删除列表的时候

​ 原因:在循环删除列表的元素,或者下标元素时. 列表内的索引会重新排列,方向从左向右.会导致删除不完全,或者是删的数据错误.

#提供两种方式删除
#方式一 倒着删除 , 从列表最后一个元素开始删除.
#索引值是奇数的删除
li=[1,2,3,4,5]
#方式一 倒着删
for i in range(len(li)-1,-1,-1):
if i %2==1:
li.pop(i)
print(li) #方式二 引入新的列表, 循环新列表删除旧列表中的元素
li=[1,2,3,4,5]
new_line=[] # 新列表
for i in li:
if i%2==0:
print(i)
new_line.append(i)
for j in new_line:
li.remove(j)
print(li) #推荐删除方式
dic={'a':'a','b':'b','c':'c'}
new_line=[]
for el in dic:
if el=='a':
new_line.append(el)
for el2 in new_line:
dic.pop(el2)
print(dic)
字典for的时候怎么删除键值对

​ 原因:字典在循环遍历的时候不允许添加和删除,只能修改

#字典遍历中去删除
dic={'a':'a','b':'b','c':'c'}
for el in dic:
dic.pop(el) # 删除
dic['v']='v' # 添加
print(el) #

最新文章

  1. Java学习笔记-抽象
  2. (转)Yii的组件机制之一:组件基础类CComponent分析
  3. Office 2010 KMS激活原理和案例分享
  4. php笔试题(3)--转载
  5. Qml一些技巧
  6. LNK1104:无法打开文件'mfc90.lib“
  7. LCT模板
  8. ffmpeg mp4转yuv
  9. MyBatis的动态SQL操作--查询
  10. Qt学习之路(2)------Qt中的字符串类
  11. 【转】Linux I2C设备驱动编写(三)-实例分析AM3359
  12. C++面试题:++i和i++哪个效率高?
  13. 我用过的Linux命令之chmod
  14. TCP/IP详细解释--TCP/IP可靠的原则 推拉窗 拥塞窗口
  15. 每天学点mysql
  16. [Swift]LeetCode685. 冗余连接 II | Redundant Connection II
  17. DEA快速生成get&set方法
  18. C语言中->是什么意思啊?比如说 p=p->next 到底表达了什么意思,请说清楚点,还有->这个符号是一个整体吗,什么意思??
  19. Windows下 Robhess SIFT源码配置
  20. C#发送邮件异常:根据验证过程,远程证书无效,何解???

热门文章

  1. 冰多多团队-第九次Scrum例会
  2. 哈希表查找(散列表查找) c++实现HashMap
  3. php 加载 zip 文件
  4. 5G网络类型 ?
  5. C#-DllImport 路径问题
  6. iOS项目运行出现:[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object
  7. 批量实现ssh免密登录
  8. 008_AuditionCC系列1
  9. Superset配置impala数据源
  10. OpenShift 4.2环境离线部署Operatorhub