列表及其他操作方法
li = [123, '老男孩', True, [1, 2, 3], {'name': 'alex'}, (1, 2, 3)
列表称之为容器型数据类型。
列表的取值:
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai']
1,按照索引取值:
print(l1[0]) #(wusir) print(l1[1], type(l1[1]))
2,按照切片取值:
print(l1[:3]) #['wusir', True, 'alex']
列表的增删改查及其他方法:
增;
1,append追加
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai'] l1.append('女神') print(l1) #['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai', '女神'] l1.append(123) l1.append([1, 2, 1111]) print(l1)
添加员工姓名:
name_list = ['wusir', 'alex', 'laonanhai', 'ritian', 'taibai'] while True: username = input('请输入新员工名字:Q或者q退出').strip() if username.upper() == 'Q': break name_list.append(username) print('您已经成功添加了%s' % username) print(name_list)
2,insert插入:
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai'] l1.insert(2, '哪吒') print(l1) #['wusir', True, '哪吒', 'alex', 'laonanhai', 'ritian', 'taibai']
3,extend迭代着追加:
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai'] l1.extend('abcd') l1.extend([1, 2, 3, 4, 'abc']) print(l1) #['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai', 'a', 'b', 'c', 'd', 1, 2, 3, 4, 'abc']
删:
1,POP按照索引去删除,有返回值
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai'] ret = l1.pop(0) print(ret) print(l1)
2,remove 按照元素删除:
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai'] l1.remove('alex') print(l1) #['wusir', True, 'laonanhai', 'ritian', 'taibai']
3,clear清空列表:
l1 = [123, '老男孩', True, [1, 2, 3], {'name': 'alex'}, (1, 2, 3)] l1.clear() print(l1)
4,del
1),在内存级别删除:
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai'] del l1 print(l1) 报错
2,按照索引删除:
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai'] del l1[2] print(l1) #['wusir', True, 'laonanhai', 'ritian', 'taibai']
3,切片删除+步长:
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai'] del l1[:-1] print(l1) del l1[:3:2] print(l1)
改:
1,按照索引去改。
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai'] l1[0] = '肖锋' print(l1) #['肖锋', True, 'alex', 'laonanhai', 'ritian', 'taibai'] 1[-1] = '男神' print(l1)
2,按照切片去改,先将切片的区域内的内容全部删除,在迭代着添加内容。
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai'] l1[:3] = '范德萨发给ghfkhgh;' #['范', '德', '萨', '发', '给', 'g', 'h', 'f', 'k', 'h', 'g', 'h', ';', 'laonanhai', 'ritian', 'taibai'] l1[:3] = [1111, 2222, 3333, 4444] print(l1)
查
1,按照索引去查
2,按照切片去查
3,按照for循环去查
l1 = [11,22,33,44,55,66,] for i in l1: print(i)
其他操作方法:
len个数:
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai'] cou = len(l1) print(cou)
count 元素个数:
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai'] print(l1.count('taibai'))
Index 通过元素找索引:
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai'] print(l1.index('alex'))
sort 从小到大,正序排序:
l2 = [1, 3, 5, 9, 7, 6, 2, 4] l2.sort() print(l2)
sort 从小到大,正序排序:
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)
列表的嵌套
习题练习
print(l1[2]) l2 = l1[2] l2[1] = l2[1].strip().capitalize() l1[2][1] = l1[2][1].strip().capitalize() print(l1) l1[2].append('舒淇') print(l1)
l1 = ['wusir', 'alex', [99, ' taibai', '98'], 21]
1,将wusir变成全部大写。
l1[0] = 'WUSIR' print(l1) #['WUSIR', 'alex', [99, ' taibai', '98'], 21] print(l1[0].upper()) l1[0] = l1[0].upper() print(l1)
2,将'taibai'变成首字母大写,其他字母小写,放回原处。
print(l1[2]) l2 = l1[2] l2[1] = l2[1].strip().capitalize() l1[2][1] = l1[2][1].strip().capitalize() print(l1) l1[2].append('舒淇') print(l1)
3,用数字的相加将99变成字符串的‘100’
l1[2][0] = str(l1[2][0] + 1) print(l1)
4,字符串的‘98’变成数字的100。
l1[2][2] = int(l1[2][2]) + 2
print(l1)
元组 只读列表,不能增删改 只能查询,儿子能改,孙子不能改
索引,切片,步长:
tu = (11, 22, 33, 44, 55) print(tu[0]) #11 print(tu[:3:2]) for i in tu: print(i)
只能查看不能修改。
tu1 = ('wusir', 'alex', [22, 44, 'taibai'],) tu1[-1].append('女神') print(tu1) (空的,元组只能查看,不能修改)
tu1 = ('wusir', 'alex', [22, 44, 'taibai'],) l1 = [22,33] l1.append(tu1) print(l1) # l1.clear() # print(l1) # del tu1 # print(tu1)
儿子能改,孙子不能改
l2 = [1,('wusir', 'alex', [22, 44, 'taibai'],)] l2.clear() print(l2)
range当做自定义的数字范围列表,
满足顾头不顾尾,可以加步长,与for 循环结合使用。与len for 结合使用
补充:
python2x: range 数字列表
xrange 可迭代对象
python3x: range 可迭代对象。
”
fori in range(0,100):
for i in range(0, 101): #[0,1,2,3,....100] print(i) for i in range(11): # [0,1,2,3,....10] print(i) for i in range(0, 101, 3): print(i) #(0,3,6,9,12......) for i in range(10, 0, -1): print(i) l1 = [22, 33, 33, 33, 66, 77, 88, 99] for i in l1: print(l1.index(i)) for i in range(len(l1)): print(i)
利用for循环打印列表习题,循环里边套循环。
l1 = ['wusir', 'alex', [99, ' taibai', '98'], 21] for i in l1: if type(i) == list: for j in i: print(j) else: print(i)
面试题:
l = [1,2,3] print(l[10:]) print(l[10])
习题:
1,查找列表li中的元素,移除每个元素的空格,并找出以’A’或者’a’开头,
并以’c’结尾的所有元素,并添加到一个新列表中,最后循环打印这个新列表。
li = ['TaiBai ', 'alexC', 'AbC ', 'egon', ' riTiAn', 'WuSir', ' aqc'] l2 = [] for i in li: i = i.strip() if i.upper()[0] == 'A' and i.endswith('c'): l2.append(i) print(l2)
2、开发敏感词语过滤程序,提示用户输入评论内容,如果用户输入的内容中包含特殊的字符: 敏感词列表 li = ["苍老师", "东京热", "武藤兰", "波多野结衣"] 则将用户输入的内容中的敏感词汇替换成***,并添加到一个列表中; 如果用户输入的内容没有敏感词汇,则直接添加到上述的列表中。
content = input('请您输入评论:').strip() # 苍老师,退役了,武藤兰也退了 list = [] li = ["苍老师", "东京热", "武藤兰", "波多野结衣"] for i in li: i = i.strip() content = content.replace(i,'*'*len(i)) # ***,退役了,***也退了 list.append(content) print(list)
3,写代码,有如下列表,按照要求实现每一个功能。 lis = [2, 3, 'k', ['qwe', 20, ['k1', ['tt', 3, '1']], 89], 'ab', 'adv']
lis[3][2][1][0]='TT' lis[3][2][1][0]=lis[3][2][1][0].upper() print(lis)
lis[3][2][1][1] = "100" print(lis) lis[3][2][1][1] = str(lis[3][2][1][1]+97) print(lis)
lis[-3][-2][-1][-1] = 101 print(lis) lis[-3][-2][-1][-1] = int('10' + lis[-3][-2][-1][-1]) print(lis)
posted on 2018-05-26 19:51 liangliang123456 阅读(180) 评论(0) 编辑 收藏 举报