Lenskit 2018-10-27
(简单的了解一下这个概念,初步有个印象,这个概念很重要,后面会着重讲)
类:具有相同属性和方法的对象的集合;
对象:万物皆对象;
概念很抽象(每当我看不到概念的时候,我就会通过举例来理解)
我们说的数字(int)、字符串(str)以及今天学习的列表(list)就是类
list # 类list li = ['xhg',123,[33,'小伙郭'],'asf',854] #li 是通过list类来创建的对象
li = ['xhg',123,[33,'小伙郭'],'asf',854]
通过这个例子列表的特征:
1.索引取值
li = ['xhg',123,[33,[124,'xhg'],'小伙郭'],'asf',854] print(li[2]) li[0] #字符串str li[2] #列表 list li[1] #数字int
注意:索引结果的类型为该元素类型
2.切片取值
li = ['xhg',123,[33,[124,'xhg'],'小伙郭'],'asf',854] v = type(li[0:2]) print(v,li[0:2])
注意:切片结果的类型始终为list
3.循环(for whlie)
只要有循环,continue和break就可以用啊
li = ['xhg',123,[33,[124,'xhg'],'小伙郭'],'asf',854] for item in li: print(item)
4.列表的修改
方法一:通过索引方式
li = ['xhg',123,[33,[124,'xhg'],'小伙郭'],'asf',854] li[1] = 456 print(li)
方法二:通过切片方式
li = ['xhg',123,[33,[124,'xhg'],'小伙郭'],'asf',854] li[0:2]=[11,'aaa'] print(li)
5.列表的删除
方法一:通过索引方式
li = ['xhg',123,[33,[124,'xhg'],'小伙郭'],'asf',854] del li[1] print(li)
方法二:通过切片方式
li = ['xhg',123,[33,[124,'xhg'],'小伙郭'],'asf',854] del li[0:2] print(li)
方法三:clear全部删除(清空列表)
li = ['xhg',123,[33,[124,'xhg'],'小伙郭'],'asf',854] li.clear() print(li)
方法四:pop
li = ['a','qwe',123,147] v = li.pop() print(li,v)
li = ['a','qwe',123,147] v = li.pop(1) print(li,v)
方法五:remove
li = ['a','qwe',123,147,123] li.remove(123) print(li)
列表创建可以被修改(字符串不可以字符串连续存储)
因为其存储不连续(链表存储)通过索引和切片方式进行修改、删除
6.存在in ,not in操作
li = ['xhg',123,[33,[124,'xhg'],'小伙郭'],'asf',854] v1 = 123 in li v2 = 'xxx' not in li print(v1,v2)
7.取列表中所嵌套的列表里的元素
li = ['xhg',123,[33,[124,'xhg'],'小伙郭'],'asf',854,True] print(li[2][1][1])
8.字符串《===》列表
类型a转换为类型b,可以初步理解为
b = b(a)
比如字符串类型转换为数字类型:
a = '123'
b = int(a)
字符串===》列表(把某个东西转换为列表,内部实质为使用for循环)
text = 'safklasdfl;kasdfkasd' new_li = list(text) print(new_li)
字符串《===列表
如果按照之间说的转换思路:
li = [123,456,'adf','qwe','xhg',147] s = str(li) x = type(s) print(x,s) 执行结果: <class 'str'> [123, 456, 'adf', 'qwe', 'xhg', 147]
是把列表整体转换成一个字符串,如果我们想要去掉中括号呢?
方法一:如果列表里元素类型既有数字,又有字符串(需要自己写for循环来一个一个处理)
li = [123,456,'adf','qwe','xhg',147] s = '' for item in li: s = s + str(item) print(s)
方法二:如果列表里元素类型只有字符串,使用join即可
li = ['adf','qwe','xhg'] s = ''.join(li) print(s)
9.append
li = ['adf','qwe','xhg'] li.append(5) li.append('xxx') li.append([123,456,'aaa']) print(li)
10.extend
(不同于append追加,通过具体例子看结果来理解二者的具体不同之处)
li = ['adf','qwe','xhg'] li.extend('123') print(li) # 执行结果 # ['adf', 'qwe', 'xhg', '1', '2', '3'] li = ['adf','qwe','xhg'] li.append('123') print(li) # 执行结果 # ['adf', 'qwe', 'xhg', '123']
12.copy 浅拷贝
(有浅拷贝,必然会存在深拷贝,这部分知识后续会讲)
li = ['adf','qwe','xhg'] v = li.copy() print(v)
13.count
计算列表中元素出现的次数(不加参数报错)
li = ['a','qwe','a','xhg',123,147,123] v = li.count('a') print(v)
14.Index
li = ['a','qwe','a','xhg',123,147,123] v = li.index(123) print(v)
15.insert
li = ['a','qwe',123,147,123] li.insert(1,123) print(li)
16.reverse
li = ['a','qwe',123,147,123] li.reverse() print(li)
16.sort
#从小到大排序 li = [14,25,1,5,9,87] li.sort() print(li) #从大到小排序(对列表值进行顺序排序后,利用reverse进行翻转) li = [14,25,1,5,9,87] li.sort(reverse=True) print(li)
class Singleton: def __new__: # 关键在于这,每一次实例化的时候,我们都只会返回这同一个instance对象 if not hasattr: cls.instance =