Python_列表初识及操作
列表
初识
列表属于容器性数据类型。
li = [123, '狗', True, [1, 2, 3], {'name': 'Lon'}, (1, 2, 3)]
其中包含有int型,例如123;字符串,例如'狗';bool值,例如True;列表,例如[1,2,3];字典,例如{'name':'Lon'};元组,例如(1,2,3)。
在循环一个列表时,最好不要改变列表的大小,会影响你的最终结果。如下:
li = [111, 222, 333, 444, 555,],索引为奇数的所有元素全部删除。
方法一:
l1 = [111, 222, 333, 444, 555, ] del l1[1::2] print(l1)
方法二(错误展示):
l1 = [111, 222, 333, 444, 555, ] for index in range(len(l1)): print('删除之前的index:%s' % index) print('删除之前的l1:%s' % l1) if index % 2 == 1: del l1[index] print('删除之后的index:%s' % index) print('删除之后的l1:%s' % l1) print(l1)
方法三(倒着删):
l1 = [111, 222, 333, 444, 555, ] for index in range(len(l1) - 1, -1, -1): if index % 2 == 1: del l1[index] print(l1)
方法四(自己做的):
l1 = [111, 222, 333, 444, 555, 666, 777, 888, 999, ] i = len(l1) count = 1 s = int(len(l1)/2) for j in range(s): del l1[count] count += 1 print(l1)
索引取值
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai'] print(l1[0])
结果:
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai'] print(l1[1],type(l1[1]))
结果:
切片取值
起始切
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai'] print(l1[:3])
结果:
结尾切
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai'] print(l1[2:])
结果:
步长切
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai'] print(l1[::2])
结果:
操作
增
增加一共有三种方式,分别为__.append()、__.insert()、__.extend()。
append('A')
增加,在列表最后边添加需要添加的内容A,返回值为None。
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai'] print(l1.append('女神'))
l1.append('女神') 这条语句只是一个动作,所以无法输出结果,当打印这条代码是,输出的结果为None,结果如下图:
追加字符串
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai'] l1.append('女神') print(l1)
结果:
追加列表
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai'] l1.append([1, 2, 1111]) print(l1)
结果:
给一个列表中添加循环添加数据。如下:
name_list = ['wusir', 'alex', 'laonanhai', 'ritian', 'taibai'] while True: user_name = input('请输入新员工的名字:q或Q退出').strip() if user_name.upper() == 'Q': break name_list.append(user_name) print('您已经成功添加了%s' % user_name) print(name_list)
结果:
.insert(Num,A)
插入,在索引为Num的位置插入A。
name_list = ['wusir', 'alex', 'laonanhai', 'ritian', 'taibai'] name_list.insert(1, '哪吒') print(name_list)
结果:
extend('ABC')
迭代追加,将'ABC'拆分成本最小的单元添加在列表后边。
name_list = ['wusir', 'alex', 'laonanhai', 'ritian', 'taibai'] name_list.extend('abc') print(name_list)
结果:
当添加的内容为列表时,列表内的字符串不进行拆分,只是拆分列表成列表的最小单元。
name_list = ['wusir', 'alex', 'laonanhai', 'ritian', 'taibai'] name_list.extend([1, 2, 3, 4, 'abc']) print(name_list)
结果:
删
.pop(Num)
按照索引去删除,有返回值。删除索引Num对应的元素。
name_list = ['wusir', 'alex', 'laonanhai', 'ritian', 'taibai'] ret = name_list.pop(0)
print(ret) print(name_list)
结果:
.remove('A')
按照元素去删除,删除元素A。只删除第一次出现的值,即当有多个值时,只删除第一次出现的。
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai'] l1.remove('alex') print(l1)
结果:
.clear()
清空列表。
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai'] l1.clear() print(l1)
结果:
del
在内存级别删除列表。
全删
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai'] del l1 print(l1)
结果:
按照索引删除
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai'] del l1[2] print(l1)
结果:
切片删除
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai'] del l1[:-1] print(l1)
结果:
加步长删除
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai'] del l1[::2] print(l1)
结果:
改
按照索引去改
正索引
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai'] l1[0] = '肖锋' print(l1)
结果:
负索引
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai'] l1[-1] = '男神' print(l1)
结果:
按照切片去改
先将切片的区域内的容全部删除,然后迭代着添加内容。
字符串
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai'] l1[:3] = '范德萨发给ghfkhgh;' print(l1)
结果:
列表
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai'] l1[:3] = [1111, 2222, 3333, 4444] print(l1)
结果:
查
切片查
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai'] print(l1[:4])
结果:
for循环
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai'] for i in l1: print(i)
结果:
其他操作方法
len(A)
计算A的元素个数。
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai'] cou = len(l1) print(cou)
结果:
.count('A')
统计A元素的个数。
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai'] print(l1.count('taibai'))
结果:
.index()
通过元素找索引,可以设置起始位置和结束位置。
源码
def index(self, value, start=None, stop=None): # real signature unknown; restored from __doc__ """ L.index(value, [start, [stop]]) -> integer -- return first index of value. Raises ValueError if the value is not present. """ return 0
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai'] print(l1.index('alex', 2))
结果:
.sort()
从小到大,正序排序
l2 = [1, 3, 5, 9, 7, 6, 2, 4] l2.sort() print(l2)
结果:
从大到小,倒序排序
l2 = [1, 3, 5, 9, 7, 6, 2, 4] l2.sort(reverse=True) print(l2)
结果:
.reverse()
翻转
l2 = [1, 3, 5, 9, 7, 6, 2, 4] l2.reverse() print(l2)
结果: