1、list类:列表
eg: li = [1,12,"alex",[1,2,3],True]
2、列表是用中括号[ ]括起来,用逗号分割每个元素。其中元素可以是数字、字符、列表、布尔值等任意类型。字符串可以理解为字符的集合,那么列表就可以理解为python中任意对象的集合。
3、列表可以采用索引或者切片取值,也可以用for循环或者while循环取值:
li = [1,2,"abc",[1,2,3]] #索引取值 print(li[0]) #切片取值,输出仍然是列表 print(li[0:3]) #for循环取值,一个个输出 for item in li: print(item) #while循环取值,一个个输出 i = len(li) a = 0 while a < i: print(li[a]) a +=1
4、字符串一旦定义就不可以修改,在内存里面是按顺序存储,重新赋值也是重新生成的过程。列表元素是可以被修改或者被删除的(列表在内存中存储时每个元素存储时都会有下一个元素的位置信息,指向下一个元素。类似于c中的链表)。
li = [1,2,"abc",[1,2,3]] print(li) #修改列表元素值,通过索引修改 li [1]="alex" print(li) #通过切片修改 li [1:3]=["a","b"] print(li) #删除列表元素,索引方式 del li[2] print(li) #删除列表元素,切片方式 del li[1:2] print(li)
5、列表也支持in操作:判断某些元素是否存在于列表,在列表中的元素以逗号分割作为整体判断,一个元素的部分是会判断为False的。
li = [1,2,"abc",[1,2,3]] v = 1 in li #True print(v) v = "ab" in li #False print(v)
6、列表中索引进行取值时可以一直往里找:
li = [1,2,"abc",["alex",2,3]] #如果我想取值alex中的l,可以使用如下方式: print(li[3][0][1])
7、其他类型转换列表,其实原理就是一个for循环。由于数字不能使用for循环,所以数字不能直接转换成列表。列表转换成字符串,如果直接str赋值,则输出整体,如果想要把每个元素拼接成字符串,需要使用for循环进行。
#字符串转列表 s = "abcdef" li = list(s) print(li) #输出是:[‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘],对每一个字符进行循环当做列表的元素 #如果是s=123,s为数值型,是不能用list进行转换的,由于不支持for循环
#列表转字符串 li = ["a","b",123,4477] b = str(li) print(b) #输出是:[‘a‘, ‘b‘, 123, 4477] #1、如果既有数字又有字符串的话,需要使用for循环一个个处理 s = "" for item in li: s += str(item) print(s) #输出是:ab1234477 #2、如果只有字符串的话,可以使用join。带有数值的话是不可行的,会报错。 li = ["abc","def"] v="".join(li) print(v)
8、列表类对应的函数/方法:
1)append:追加,在列表原来的值的最后面直接追加元素(把append后的元素当做一个整体)。不需要赋值,直接运行,更改原来的列表。
2)clear:清空,清空列表。不需要赋值,直接运行,更改原来的列表。
3)copy:复制,浅拷贝。需要赋值给新变量。
4)count:计算某个元素出现的次数
5)extend:扩展,在列表后面直接追加。参数是可迭代对象(列表/字符串)(把extend后面的元素用for循环进行添加,不是一个整体)。
6)index:找元素的位置,根据输入的参数的值,输出从前往后找到的第一个元素的索引位置。
7)insert:在指定的索引位置进行元素追加。
8) pop:默认情况删除最后一个元素,还可以把删除的值进行赋值。如果加上索引参数,则可以删除指定索引位置的值。
9)remove:删除列表中的指定元素,按照指定的元素进行删除。删除列表中的指定值,如果指定元素有重复,则删除列表左边的第一个元素。
10)reverse:反转,将当前列表进行反转
11)sort:排序。默认是从小到大排序,加上reserve=True参数则是从大到小排序。
#1、apennd:当做一个整体进行在原列表最后进行追加,不需要重新赋值。改变原列表的值。 li = ["abc",123,[1,2,"dd"]] li.append(123) #输出:[‘abc‘, 123, [1, 2, ‘dd‘], 123] print(li) li.append(["mm","11"]) print(li) #输出:[‘abc‘, 123, [1, 2, ‘dd‘], 123, [‘mm‘, ‘11‘]] #2、clear:清空列表。改变原列表的值。 li = ["abc",123,[1,2,"dd"]] li.clear() print(li) #输出是:[] #3、copy:浅拷贝一份列表,赋值或者打印。不改变原列表,需要新赋值。 li = ["abc",123,[1,2,"dd"]] new_li = li.copy() print(new_li) #输出结果是:[‘abc‘, 123, [1, 2, ‘dd‘]] #4、count:计算某个元素出现的次数 li = ["abc",123,[1,2,"dd"],123] v = li.count(123) print(v) #输出是:2 #5、extend:扩展,在列表后通过for循环直接追加可迭代对象。改变原列表的值。 li = ["abc",123,[1,2,"dd"]] li.extend([123,45]) print(li) #输出是:[‘abc‘, 123, [1, 2, ‘dd‘], 123, 45] li.extend("abc") print(li) #输出是:[‘abc‘, 123, [1, 2, ‘dd‘], 123, 45, ‘a‘, ‘b‘, ‘c‘] #6、index:寻找某一元素位置,若有重复,只输出最左边的.还可以加开始结束索引位置 li = ["abc",123,[1,2,"dd"],123] print(li.index(123)) #输出是:1 print(li.index(123,2,4)) #输出是:3 #7、insert:在指定索引的位置后进行元素追加。改变原列表的值。 li = ["abc",123,[1,2,"dd"]] li.insert(1,456) print(li) #输出是:[‘abc‘, 456, 123, [1, 2, ‘dd‘]] #8、pop:删除,默认删除最后一个元素,指定了索引就删除指定索引的元素。改变原列表的值。 li = ["abc",123,[1,2,"dd"]] a = li.pop() b = li.pop(1) print(a) #输出是:[1, 2, ‘dd‘] print(b) #输出是:123 print(li) #输出是:[‘abc‘] #由于连续删除了两次,所以只剩下一个元素 #9、remove:按照指定元素进行删除,若遇到重复元素,只删除最左边的元素。改变原列表的值。 li = ["abc",123,[1,2,"dd"],123] li.remove(123) print(li) #输出是:[‘abc‘, [1, 2, ‘dd‘], 123] #10、reverse:反转列表中的元素,改变原列表的值。 li = ["abc",123,[1,2,"dd"]] print(li.reverse()) #输出是:None #代指空,原因是因为反转后会对原列表进行操作,所以是原列表数据改变。 print(li) #输出是:[[1, 2, ‘dd‘], 123, ‘abc‘] #11、sort:排序,然后改变原列表的值。 li = [11,22,44,77,33] li.sort() print(li) #输出是:[11, 22, 33, 44, 77] li = [11,22,44,77,33] li.sort(reverse=True) print(li) #输出是:[77, 44, 33, 22, 11]
原文:https://www.cnblogs.com/liuzhijia/p/11110088.html