栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python数据结构基础知识点

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python数据结构基础知识点

本文记录了我在b站听python编程课时学到的基础的知识点。

  1. 比较运算符==比较的是变量的值,is比较的是变量的标识。
a=1
b=1
a==b #True
a is b #True
lis1=[1,2,3]
lis2=[1,2,3]
lis1==lis2 #True
lis2 is lis2 #False

lis2 is lis2结果是False的原因是整数是不可变类型,所以内存空间相同。但列表是可变的,所以lis1和lis2的标识是不同的。

  1. 左移1位相当于乘2,右移一位相当于除2,输入类型为int。
a=4
a<<1 #8
a<<2 #16
a>>1 #2
b=3
b>>1 #1
  1. 运算符优先级排序,有括号就先计算括号里的。
  2. 内置函数range返回的是迭代器对象。range类型的优点是只需要存储start,end和step,因此所有对象占用的内存是相同的,只有用到range对象时,才会去计算里面的序列。但in和not in可以直接用在迭代器对象上。
r=range(1,10,2)
print(list(r)) #这样才能输出序列
print(1 in r) #True
print(2 in r) #False
  1. while…else和for…else语句都是在while或for执行完所有循环的情况下,执行else中的语句。如果while或for中途跳出循环,不执行else中的语句。
  2. 列表的sort()和sorted()函数区别。sort()会直接改变原列表,而sorted()是生成新的对象。
# sort()
lst=[10,20,40,30,50]
print(id(lst)) #1897301238344
lst.sort()
print(lst,id(lst)) #[10, 20, 30, 40, 50] 1897301238344 列表元素排序变化,但id不变
# sorted()
lst=[10,20,40,30,50]
print(sorted(lst),lst) #[10, 20, 30, 40, 50] [10, 20, 40, 30, 50] 原lst不变,需要将sorted(lst)赋值给新对象。
  1. 元组是不可变序列,但如果元组中对象为可变对象,那么可变对象的引用不可变(即id不变),但数据可以改变。
t=(10,[20,30],40)
print(id(t[1])) # 2751238595144
t[1].append(100)
print(t,id(t[1])) # (10, [20, 30, 100], 40) 2751238595144
  1. 列表、元组、字典、集合总结
    字符串大小写转换操作
    字符串内容对齐操作

  2. 字符串的驻留机制在需要值相同的字符串时,可以提升效率节约内存。 字符串只在编译时驻留,而非运行时。

a='abc'
b='ab'+'c'
c=''.join(['ab','c'])
print(a is b) #True
print(a is c) #False,因为join()是在运行时生效的。

但字符串拼接中建议使用join(),因为join()先计算出所有字符串的长度再拷贝,只创建一次对象,效率高于‘+’。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/834757.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号