1. 用[ ]创建列表2. 用list()函数创建列表 b = list('abcd') display(b)
结果如下:
3. 用range()函数创建整数列表c = list(range(10)) display(c)
4. 用列表推导式创建列表d = [i for i in range(10)] display(d)
e = list() display(e) f = [] display(f)
1. append():真正的在列表尾部添加元素,速度最快,推荐使用a = [3,1.43,True,'哈哈'] b = [] display(id(b)) for i in a: b.append(i) display(b) display(id(b))
综上所示:我们发现在列表尾部添加元素后,b的存储地址前后并没有改变,属于原地操作列表,这样的话对内存的开销较小。2. extend()方法:将一个列表的元素,添加到另外一个列表元素的尾部a = ['我很好',4,5,6] b = [1,2,3,'嘿嘿'] display(b) display(id(b)) b.extend(a) display(b) display(id(b))
a = [20,10,40,30] display(id(a)) b = sorted(a) display(b) display(id(b))
c = [50,10,100,30] display(id(c)) c.sort() display(c) display(id(c))
3. 分析比较sorted()函数属于python内置函数,sort()函数属于列表对象中的一个方法。 x.sort()属于原地修改列表的排序方法,sorted(x)属于建立新列表的排序方法。 x.sort()由于是原地修改列表的排序方法,因此不能用其他变量去接收排序结果,sorted(x)属于建立新列表的排序方法,因此需要创建一个新的变量接收这个变量。
1. 直接使用{ }创建字典a = {'name':'张三','age':18,'job':'teacher'} display(a)
结果如下:
2. 使用dict()函数创建字典 b = dict(name='黄伟',age=18,job='teacher') display(b) c = dict([('name','黄伟'),('age',18),('job','teacher')]) display(c)
结果如下:
3. zip()函数:利用两个列表创建字典 list1 = ['name','age','job'] list2 = ['黄伟',18,'teacher'] d = dict(zip(list1,list2)) display(d)
结果如下:
4. 使用{ }和dict()创建空字典 e = {} display(e) f = dict() display(f)
结果如下:
5. 使用fromkeys()函数创建值为空的字典 list1 = ['name','age','job'] g = dict.fromkeys(list1) display(g)
结果如下:
1. get():强烈推荐的字典键值访问方式a = {'name':'张三','age':18,'job':'teacher'} display(a) display(a.get('name')) display(a.get('weight'))
结果如下:
2. items():获取字典中的键值对 a = {'name':'张三','age':18,'job':'teacher'} display(a) display(a.items) for i in a.items(): print(i)
结果如下:
3. keys():获取字典中所有的键 values():获取字典中所有的值 a = {'name':'张三','age':18,'job':'teacher'} display(a) display(a.keys()) display(a.values())
结果如下:
import time t1 = time.time() s = '' for i in range(1000000): s += '哈哈' t2 = time.time() display('用时:' + str(t2-t1)) t3 = time.time() l = [] for i in range(1000000): l.append('哈哈') m = ''.join(l) t4 = time.time() display('用时:' + str(t4-t3))
结果如下:
综上所述:字符串进行拼接时,推荐使用'join',少用'+'。 1. 字符串驻留机制的含义2. “is'和”=='的不同点'=='用于判断两个对象的内容是否相同,只关注两个对象的值是否相等。 'is'是用于判断两个对象的内存地址是否相同,真正判断两个对象是不是同一个对象。 因此,is的要求更高,不仅要求值一样,同时还要求对象内存地址也是一样。
操作如下: p = 'ab#' q = 'ab#' display(id(p),id(q)) display(p == q) display(p is q)
3. 检测字符串驻留机制 m = '12_abv' n = '12_abv' display(id(m)) display(id(n)) display(m == n) display(m is n) p = 'ab#' q = 'ab#' display(id(p)) display(id(q)) display(p == q) display(p is q)
|