zoukankan      html  css  js  c++  java
  • python学习日记(数据结构习题)

    元素分类

      有如下值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

    作者:Gruffalo
    ---------------------------------------------
    天行健,君子以自强不息
    地势坤,君子以厚德载物
    内容仅为自己做日常记录,备忘笔记等
    真小白,努力学习ing...一起加油吧!(ง •̀_•́)ง
  • 相关阅读:
    一、K3 WISE 插件开发《常用数据表整理》
    数据类型
    python的一些操作命令
    python基本数据类型
    20181207朱涛《网络对抗技术》Exp8 Web综合
    20181207朱涛《网络对抗技术》Exp7 网络欺诈防范
    20181207朱涛《网络对抗技术》Exp6 MSF应用基础
    20181207朱涛《网络对抗技术》Exp5 信息搜集与漏洞扫描
    20181207朱涛《网络对抗技术》Exp4 恶意代码分析
    20181207朱涛《网络对抗技术》Exp3 免杀原理
  • 原文地址:https://www.cnblogs.com/smallfoot/p/9990227.html
Copyright © 2011-2022 走看看