python集合

list&tuple

list和tuple都是有序集合,list是可变对象,tuple是不可变对象

list(可变对象)特点:

  1. 查找和插入的时间随着元素的增加而增加(缺点);
  2. 占用空间小,浪费内存很少(优点)
 1 # -*-coding:utf8 -*-
 2 
 3 #定义list
 4 humans = ['Lily','Sherry','Mami']
 5 #获取list的元素个数
 6 humans_len = len(humans)
 7 #list要用humans[-1]来表示索引最后一个元素,避免越界报错
 8 print(humans_len,humans[-1])
 9 #
10 humans.append('me')
11 #
12 humans.pop(-1)
13 #
14 humans[-2] = 'Marly'
15 #元素类型不限,list里面还可以有list,形成2维数组,3维数组

 tuple(不可变对象)特点:

  1. 只有查找功能,并且查找的时间随着元素的增加而增加(缺点);
  2. 占用空间小,浪费内存很少(优点) 
 1 # -*-coding:utf8 -*-
 2 
 3 #tuple的写法
 4 t = (1,)
 5 t1 = (2,3,)
#元组加,号是为了和函数方法区分
6 #‘可变的’tuple(里面包含list,list是可变的) 7 #可变的其实是list,tuple建立里面的其中一个元素是指向list是不变的 8 #全局变量l2 9 list1 = [1, 2, 3, 4, 5, 6] 10 11 #建立一个循环函数,来进行多次验证,可变和不可变的不同(也叫方法吧,随便了) 12 def tuple_run_times(times_): 13 for x in range(times_): 14 list1 = [x,2] 15 #把list1赋予给list2 16 list2 = list1 17 #改变list1 18 list1.pop(1) 19 print('list1的值 = '+str(list1)) 20 #改变list1值的同时,也改变了list2的值 21 print('list2的值 = '+str(list2)) 22 #为什么list2会跟着list1改变呢,我们打印id值看看,是相同的!这就是可变对象 23 print('tuple1的list1的id是:'+str(id(list1))) 24 print('tuple1的list2的id是:'+str(id(list2))) 25 print()
       #-------------------------------------------------------------------
26 t1 = (1,[1,2,3],list1,) 27 #把t1赋值给t2 28 t2 = t1 29 #改变t1 30 t1 = (1,[1,2,3],times_,) 31 #改变t1值的时候,并没有影响t2的值 32 print('tuple2的值 = '+str(t2)) 33 print('tuple1的值 = '+str(t1)) 34 #t2并没有跟着t1改变而改变,我们打印id值看看,是不同的!这就是不可变对象 35 print('tuple2的id是:'+str(id(t2))) 36 print('tuple1的id是:'+str(id(t1))) 37 print("_________________________________________________") 38 tuple_run_times(5) 39 #打印全局变量list1 40 print('list1 = ' + str(list1))

 

posted on 2019-03-14 18:33  詹生  阅读(136)  评论(0编辑  收藏  举报

导航