元素分类
有如下值li= [11,22,33,44,55,66,77,88,99,90],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
即: {'k1': 大于66的所有值列表, 'k2': 小于66的所有值列表}
li= [11,22,33,44,55,66,77,88,99,90] test = {} list_small = [] list_big = [] for i in li: if i == 66: continue elif i < 66: list_small.append(i) else: list_big.append(i) test['k1'] = list_big test['k2'] = list_small print(test)
输出商品列表,用户输入序号,显示用户选中的商品
商品 li = ['apple','orange','banana','pants','hat']
要求:1:页面显示 序号 + 商品名称,如:
1 apple
2 orange
…
2: 用户输入选择的商品序号,然后打印商品名称
3:如果用户输入的商品序号有误,则提示输入有误,并重新输入。
4:用户输入Q或者q,退出程序。
li = ['apple','orange','banana','pants','hat'] while 1: for i in li: print(li.index(i)+1,i)#将每个元素的索引加1和索引对应的元素打印出来 choice = input('请输入商品序列(Q退出case-sensitive):') if choice.upper() == 'Q': print('查询结束') break if choice.isdigit():#isdigit()判断字符串是否仅由数字组成 choice = int(choice) if choice > 0 and choice <= len(li): print('序列号:{} 商品:{}'.format(choice,li[choice-1]))#格式化输出,输出查询的序列号和其对应的商品 else: print('请输入有效数字') else: print('请输入数字')
列表的删除操作:[11,22,33,44,55]删除22,44
删除22,44,错误方法
i = [11,22,33,44,55] for i in range(len(li)):#[0,1,2,3,4],当前li[1] == 22,li[3] == 44 if i%2 == 1: del li[i]#由于列表是可变数据类型,每删一次,元素位置前移一次,无法实现,删掉22之后,li = [11,33,44,55],此时li[3] == 55 print(li)
删除22,44,正确方法
is = [11,22,33,44,55]#列表是可变数据类型,删除元素会引起动态变化 for i in range(len(lis)-1,-1,-1):#使用倒叙删除,前面的元素索引不会变化[4,3,2,1,0] if i % 2 == 1:#满足的有 3 1 print(i) #i == 3 i == 1 del lis[i]#删除lis[3] == 44, 删除lis[1] == 22 print(lis) print(lis)
删除22,44,简便方法1
[11,22,33,44,55] l1 = lis[::2]#创建一个新列表 lis = l1#直接赋值 print(lis)
删除22,44,简便方法2
lis = [11,22,33,44,55] l2 = [] for i in lis: if lis.index(i)%2 == 0: l2.append(i) lis = l2 print(lis)
字典的指定删除
错误示范
#删除key中带有'k'的键值对 dic = {'k1':'v1','k2':'v2','a3':'v3'} for i in dic: if 'k' in i: del dic[i] #出现错误,即字典在遍历时不能被修改
第一种正确做法
#第一种种正确做法 dic = {'k1':'v1','k2':'v2','a3':'v3'} li = [] for i in dic: if 'k' in i:#字典遍历默认为key li.append(i)#将带有k的key存到li里面 for j in li:#对li中的元素进行遍历,即遍历带有k的key del dic[j]#即删除带有k的key print(dic)
第二种正确做法
#第二种正确做法 dic = {'k1':'v1','k2':'v2','a3':'v3'} dic1 = {} for i in dic: if 'k' not in i: dic1[i] = dic[i]#向dic1里面添加key 为 i ,value 为dic[i]的键值对 dic = dic1 print(dic)
列表的去重
[1,2,3,2,1,5,6,4,5,6,4] print(li) set1 = set(li)#转换成集合去除重复值 print(set1) li = list(set1)#再转换为列表 print(li)
pass