python从入门到放弃

Python基础(二)

2018-02-07  本文已影响33人  EvanForEver

Python中的序列

列表List

#列表内部操作
l1[3]='Caffe'#赋值
l1.append(l2)#添加到未尾,如果元素是列表,也是按照列表添加进来,只添加一个元素
l1.extend(['Torch'])#扩展,如果是扩展元素是列表,是只添加列表内的元素,可以一次性添加多个元素
l1.insert(0,'sklearn')#插入元素,按索引
l1.index('sklearn')#获得指定元素的索引位置,如果存在相同元素,返回的是从右到左第一个的索引位置
l1.count('AI')#统计元素出现的次数
l1.pop()#返回并弹出最后一个元素(即元素会被删除)
l1.pop(3)#返回并弹出指定索引位置的元素
del l1[-1] #删除列表元素,按索引位置删除
l1.remove('AI')#指定元素进行删除,如果存在相同元素,则删除从左至右第一个元素

#列表操作
reversed(l1) #对列表进行反转,返回一个reversed对象,要list化才会显示
sorted(l1)
l2<l3 #列表比较,逐元素进行对比

列表推导式 list comprehension

元组Tuple

集合Set

#集合间操作
a=set('abcde')
b=set('cdefg')

# &交集
a&b
# 结果:{'c', 'd', 'e'}

# |并集
a|b
# 结果:{'a', 'b', 'c', 'd', 'e', 'f', 'g'}

# -差集
a-b
# 结果:{'a', 'b'}

#合并
a.update(b)#集合合并

字典Dictionary

记住:字典和集合都不是序列,因此无法用切片和索引

#新增成员
d1['address']='beijing'

#访问:按key访问value:
d1['name']
d1.get('name',-1)
#访问所有key
d1.keys()
#访问所有value
d1.values()
#访问所有元素
d1.items()

#删除成员
d1.pop('address')#返回指定key的值。并弹出元素
d1.popitem()#r返回整个元素。并弹出

#清空
d1.clear()

#Key值的选取,能被hash的值都可以做为key,即不可变类型可以做为key值。
hash('a')

Python内存管理

□ 变量与对象之间关系:引用
□ 查看一个对象被引用总数

#在Python中,每个对象都有存有指向该对象的引用总数,即引用计数(reference count)。
#我们可以使用sys包中的getrefcount(),来查看某个对象的引用计数。
#需要注意的是,当使用某个引用作为参数,传递给getrefcount()时,参数实际上创建了一个临时的引用。
#因此,getrefcount()所得到的结果,会比期望的多1。

>>from sys import getrefcount
>>a = [1, 2, 3]
>>print(getrefcount(a))
2
>>b = a
>>print(getrefcount(b))
3

可变与不可变对象

>>a=b=c=5#创建了三个变量,均指向一个int类型的对象5,一个对象可以被多个引用指向
>>del c#删除c这个变量对5的引用
>>a=[1,2,3]#把a这个变量的指向,重新指向了一个列表对象,引用可以随时指向一个新的对象
>>print(b)#b依旧指向5,5没有被改变
5

#什么是可变对象?
>>a=b=c=[1,2,3]
>>print(a,b,c)
[1, 2, 3] [1, 2, 3] [1, 2, 3]
>>a.append(4)#通过a能真正改变列表[1,2,3],
>>print(a,b,c)#通过引用其元素,改变对象自身
[1, 2, 3, 4] [1, 2, 3, 4] [1, 2, 3, 4]

#什么是不可变对象?
>>a=b=c='beijing'
>>a='shanghai'
#打印a,b,c,d指向对象的id,看看是否是一个家伙
>>print('id(a):',id(a),'id(b):',id(b),'id(c):',id(c))
id(a): 2246883863600 id(b): 2246883876232 id(c): 2246883876232

#看似是把a变量指向的字符串从beijing,改为shanghai,但其它并没有改变beijing,只是a的指向被改变了
>>print(a,b,c)#不能改变对象本身,只能改变引用的指向
shanghai beijing beijing

上一篇下一篇

猜你喜欢

热点阅读