博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基础之你容易忽略的细节
阅读量:4635 次
发布时间:2019-06-09

本文共 3593 字,大约阅读时间需要 11 分钟。

1.while...else和for...else,废话不多说,直接看代码,不知道结果的可以自行实验。

1 for i in range(1,6):2     if i==3:3         break4     print(i)5 else:6     print(777)
加break就不执行else
1 for i in range(1,6):2     print(i)3 else:4     print(777)
不加break执行else

2.常见的数据类型转换

#数字转字符串PS:能看懂这波俩个i的同学恭喜你,装饰器的重点你可能一下就理解了i=123i=str(i)print(i,type(i))

 

#数字转bool值i=123i=bool(i)print(i,type(i))#举个特殊的0b=0b=bool(b)print(b,type(b))

 

#万能的字符串除了字典不能直接转,都可以,骚的不行!为什么这么骚,因为人是可迭代对象s1='123'#字符串转数字,前提是字符串为数字s_int=int(s1)print(s_int,type(s_int))#字符串转列表s2='123hjs's_list=list(s2)print(s_list,type(s_list))#字符串转元组s_tuple=tuple(s2)print(s_tuple,type(s_tuple))#字符串转集合s_set=set(s2)print(s_set,type(s_set))#下面演示一波特殊的空字符串转bool值s3=''s_bool=bool(s3)print(s_bool,type(type))

 

#列表转字符串lst=['alex','wusir','taibai']s_lst=str(lst)print(s_lst,type(s_lst))#列表转元组tuple_lst=tuple(lst)print(tuple_lst,type(tuple_lst))#列表转集合set_lst=set(lst)print(set_lst,type(set_lst))#特殊的空列表转换bool值lst1=[]lst2=[None]  # 列表括号里换成'',(),[],类似结果一样还是Truebool_lst1=bool(lst1)bool_lst2=bool(lst2)print(bool_lst1,type(bool_lst1))print(bool_lst2,type(bool_lst2))

 

#元组转列表tu=('a',1,None)list_tu=list(tu)print(list_tu,type(list_tu))#元组转集合set_tu=set(tu)print(set_tu,type(set_tu))#元组转字符串str_tu=str(tu)print(str_tu,type(str_tu))#空元组转换bool值依旧是Falsetu1=()bool_tu=bool(tu1)print(bool_tu,type(bool_tu))

 

#集合转列表set1={1,'taibai','alex'}list_set=list(set1)print(list_set,type(list_set))#集合转元组tuple_set=tuple(set1)print(tuple_set,type(tuple_set))#集合转字符串str_set=str(set1)print(str_set,type(str_set))#空集合转换bool值set2=set()bool_set=bool(set2)print(bool_set,type(bool_set))

 

# 字典转字符串dic = {
'name': 'taibai', 'age': '18'}str_dic = str(dic)print(str_dic, type(str_dic))# 字典转列表有搞头,因为字典有keys、values、items三个好玩的list_dic1 = list(dic.keys()) # 和直接list这个字典一样print(list_dic1, type(list_dic1))list_dic2 = list(dic.values())print(list_dic2, type(list_dic2))list_dic3 = list(dic.items())print(list_dic3, type(list_dic3)) # 每个键值对生成一个元组组成的列表# 字典转元组与转列表一样的,就不一一举例了tuple_dic = tuple(dic)print(tuple_dic, type(tuple_dic))# 字典转集合同楼上set_dic = set(dic)print(set_dic, type(set_dic))# 空字典转bool值dic1 = {}bool_dic = bool(dic1)print(bool_dic, type(bool_dic))

终于捋完了,但是感觉还差点什么,whatever,先就这些吧,总结一下:字符串是最强的数据类型,能和各个数据类型进行转换;字典因为是键值对形式的数据类型,所以转换起来需要通过调用自己的items方法才能完美转换成和原来一样形态的数据类型(个人理解,有点绕);列表、集合、元组这三个数据类型应该是三个很默契的合伙人,只要是可迭代对象他们就能带你飞;数字就不做赘述了 。

3.列表、字典的循环操作问题

列表在循环中,如果进行增删的操作,会改变其索引;与字典在循环中进行增删的操作会改变其大小一个道理,为了解决该问题的方案(字典的例子可以自行实验):

s = '老男孩都是大佬'lst = []# s1='_'.join(s)# lst=s1.split('_')lst.extend(s)  # 先构建一个列表,用一波迭代添加回忆下print(lst)# 利用新的列表将旧列表的每个元素删除lst2 = []for i in lst:    lst2.append(i)print(lst)for i in lst2:    lst.remove(i)print(lst)
利用新的列表将旧列表的每个元素删除
s = '老男孩都是大佬'lst=list(s)print(lst)for i in range(0, len(lst)):    lst.pop()print(lst)
利用pop()倒序

4.fromkeys是个蛇精病

# 把第一个参数中的每一个元素拿出来和第二个参数组成一个键值对# 生成出来的键指向的value是同一个对象. 改变其中一个的时候. 另一个也会跟着改变dic = dict.fromkeys(["jay", "jj"], ["周杰伦", "林俊杰"])dic['jay'].append("蔡依林")print(dic)
dic = {}dic.fromkeys(["葫芦娃", "蛇精"], ["冯提莫", "陈一发"])print(dic) # 什么都不打印.此处涉及的静态方法的概念,后面面向对象会讲到

5.深浅copy

赋值运算俩个内存地址完全一样;

lst1 = ["金⽑狮王", "紫衫龙王", "⽩眉鹰王", "⻘翼蝠王"]lst2 = lst1print(lst1,id(lst1))print(lst2,id(lst2))lst1.append("杨逍")print(lst1,id(lst1))print(lst2,id(lst2))

 

浅copy只能使外层的内存地址变为新的,里层的内存地址还是一样;

lst1 = ["何炅", "杜海涛", "周渝⺠", ["麻花藤", "⻢芸", "周笔畅"]]lst2 = lst1.copy()lst1[3].append("⽆敌是多磨寂寞")print(lst1,id(lst1))print(lst2,id(lst2))print(id(lst1[3]), id(lst2[3]))

 

深copy所有层都是独立的内存地址。

import copylst1 = ["何炅", "杜海涛", "周渝⺠", ["麻花藤", "⻢芸", "周笔畅"]]lst2 = copy.deepcopy(lst1)lst1[3].append("⽆敌是多磨寂寞")print(lst1)print(lst2)print(id(lst1[3]), id(lst2[3]))

 

转载于:https://www.cnblogs.com/changwentao/p/9152451.html

你可能感兴趣的文章
chrome扩展之3:一步步跟我学开发一个表单填写扩展
查看>>
Socket、Http、TCP/IP、UDP的联系与区别
查看>>
包装函数
查看>>
原理系列:Spark1.x 生态圈一览
查看>>
django模板系统(下)
查看>>
HDU 1711 Number Sequence(KMP模板)
查看>>
如何查看Ubuntu版本
查看>>
本杰明 富兰克林 道德13准则
查看>>
JAVA 操作系统已经来到第五个版本了 现陆续放出三个版本 这是第二个版本
查看>>
LightOJ 1370 Bi-shoe and Phi-shoe(欧拉函数)
查看>>
C#指南,重温基础,展望远方!(4)表达式
查看>>
统计元音
查看>>
悼念512汶川大地震遇难同胞——一定要记住我爱你
查看>>
荷兰国旗问题
查看>>
Day-5: Python高级特性
查看>>
BZOJ 离线网站
查看>>
IIS服务器SSL证书安装
查看>>
void和void *
查看>>
继续教育学习脚本
查看>>
改装摩托车
查看>>