字符串创建以后不可修改,而列表可以直接修改元素的值。
列表的魔法
列表是一个类
li = [11,22,33,'alex'],li为列表的对象
以逗号来分割每个元素,列表中的元素可以是数字,也可以是字符串,布尔值。而且列表
之中可以嵌套列表。
可以通过索引/切片来取到列表的值
比如 li[0:2]
同时支持for,while循环
for i in li:
列表的元素支持直接修改(类似链表这样的不连续的存储方式,不需要重新开辟内存),
但字符串不支持直接修改(类似顺序表的存储方式)
删除方式直接 del li[1]
同时层层嵌套的列表也可以依次取出元素
支持in操作
类型转换
s = 'abc'
new_s = list(s)
print(new_s)
输出结果:['a', 'b', 'c']
把字符串中的每个字符拿出来当作列表元素(内部使用for循环的机制)
数字是不可以转换成列表的,数字也不可以与字符拼接。
列表转换成字符串是需要自己写for循环(列表里既有字符串也有数字时)
li = [11,22,33,'134','alex']
s = ''
for i in li :
s = s + str(i)
print(s)
输出结果:112233134alex
当列表里只有字符串时直接可以使用join函数
li = ['123','alex']
v = ''.join(li)
print(v)
输出结果:123alex
list对象调用list类提供的方法
append函数:添加元素到列表
li = ['123','alex']
li.append(['wo'])
li.append('abc')
print(li)
输出结果:
['123', 'alex', ['wo'], 'abc']
li = ['123','alex']
li.append(['12','ab','啦啦啦'])
print(li)
输出结果:['123', 'alex', ['12', 'ab', '啦啦啦']]
extend函数:拓展原列表,参数:是可迭代的对象(可以用for循环)
li = ['123','alex']
li.extend(['12','ab','啦啦啦'])
print(li)
输出结果:['123', 'alex', '12', 'ab', '啦啦啦']
li = ['123','alex']
li.extend('啦啦啦')
print(li)
输出结果:['123', 'alex', '啦', '啦', '啦']
clear函数:直接清空列表
li.clear()
print(li)
copy函数:复制
li = ['123','alex']
li.append(['wo'])
li.append('abc')
v = li.copy()
print(v)
输出结果:['123', 'alex', ['wo'], 'abc']
此复制为浅复制
count函数:计算列表的元素出现的次数
li = ['123','alex']
v = li.count('123')
print(v)
输出结果:
1
count里面必须有参数,不然会报错
index函数:找到列表元素的索引
index(value,st,en)
li = ['123','alex']
v = li.index('alex')
print(v)
输出结果:1
insert函数:在指定索引位置插入元素
insert(index,value)
li = ['123','alex']
li.insert(0,'al')
print(li)
输出结果:
['al', '123', 'alex']
pop函数:删除某个值(1,指定索引 2,如果不给参数,默认是删除最后一个),并获取删除的值。
li = ['123','alex','ab',120]
v = li.pop(3)
print(v)
print(li)
输出结果:
120
['123', 'alex', 'ab']
remove函数:删除列表中的指定值,默认左边优先
li = ['123','alex','ab',120,'123']
li.remove('123')
print(li)
输出结果:
['alex', 'ab', 120, '123']
删除的几种形式:del的切片和索引,pop,remove,或者直接清空clear
reverse函数:将当前列表的元素翻转
li = ['alex',123,34,45,'123','abc']
li.reverse()
print(li)
输出结果:
['abc', '123', 45, 34, 123, 'alex']
sort函数:将列表元素进行排序
sort(reverse=True)为从大到小排序
li = ['123','34','45','abc']
li.sort(reverse=True)
print(li)
输出结果:
['abc', '45', '34', '123']
li = [11,33,22,55,21]
li.sort(reverse=True)
print(li)
输出结果:[55, 33, 22, 21, 11]