最近在用python的django做一个网站,时不时都会要对数据做一些转换或者对一些数据结构进行比较或者运算,但总是要上网去找资料,然后复制粘贴,时间长了,感觉整个项目的代码很凌乱,完全不是按照自己的思路来(虽然是按照自己的方式复制粘贴,哈哈哈!!!),所以在此记录一下,方便自己查看使用,也和大家分享一下经验。欢迎大家阅读指正!!

重复元素判定

如何判断一个列表里面是否存在重复元素?




python 类打印成字符串_python打印字节流

重复元素判定



set() 函数会创建一个无序不重复的元素集,简单来说就是去重。将原列表和去重后的列表的长度比较,如果长度相等则无重复元素,否则存在。

字符元素组成判定

如何判断两个字符串是否组成相同?




python 类打印成字符串_python打印字节流_02


可以使用 list() 函数将字符串的每个字符拆分出来,然后组成一个数组,再将两个数组使用sort()函数进行排序,如果字符串组成相同,则他们的排序结果肯定相同,则这两个字符串肯定相同。

当然也可以使用 collections 库中的 counter 比较


python 类打印成字符串_python 类打印成字符串_03


内存占用

如何检查变量所占用的内存呢?


python 类打印成字符串_python 类打印成字符串_04


使用 sys 库中 getsizeof 方法可以查看 python 对象的内存占用,单位是字节 (byte)

注:有些数据类型在 Python3 和 Python2 中占用的内存是不同的

字节占用

如何检查字符串所占用的字节数呢?


python 类打印成字符串_python打印字节流_05


检查字符串所占用的字节数,可以使用 len() 函数,即统计字符串长度。有些小伙伴会认为第6行的print(byte_size('你好,python'))为什么不是9字节 ?又或者说一个汉字占4字节,那应该是18字节才对啊?

在 Python 中,不同的字符所占的字节数不同,数字、英文字母、小数点、下划线以及空格,各占一个字节,而一个汉字可能占 2~4 个字节,具体占多少个,取决于采用的编码方式。例如,汉字在 GBK/GB2312 编码中占用 2 个字节,而在 UTF-8 编码中一般占用 3 个字节。所以 “你”,“好”,“,”占了3*3=9字节,python占了6*1=6字节,所以总共15字节。

打印 N 次字符串

如何不用循环语句就能打印 N 次字符串呢?


python 类打印成字符串_字符串_06


对,你没看错,就是这么简单,直接将一个整形数乘一个字符串即可有执行多次 print() 函数的效果