Python数字分类(字典)

问题描述】

有例如如下列表ls= [11,22,33,44,55,66,77,88,99,90],ls里的数据是标准输入(至少有一个数据)

将所有大于 x 的值保存至字典的第一个key中,数据保持原列表的先后顺序不变

将小于等于 x 的值保存至第二个key的值中,数据保持原列表的先后顺序不变。

即: {'k1': 大于x的所有值列表, 'k2': 小于等于x的所有值列表}

转换成列表后输出

题目要求:

完成分类函数classify(x,ls)

【样例输入】

66

11 22 33 44 55 66 77 88 99 90

【样例输出】

[('k1', [77, 88, 99, 90]), ('k2', [11, 22, 33, 44, 55, 66])]

【样例说明】

输入两行:第一行x
第二行多个正整数,空格隔开。

输出分类后的列表,即: [('k1', [大于x的所有值列表]), ('k2', [小于等于x的所有值列表])] ,数据保持原列表的先后顺序不变。

img

可以在classify()函数中遍历列表ls,将大于参数x的数添加到一个列表中,将小于等于x的数添加到另一个列表中,最后再分别将两个列表作为键"key1"和"key2"的值即可。

代码如下:

参考链接:




def classify(x,ls):

    big = [] # 存储大于x的数的列表
    small=[] # 存储小于等于x的列表 

    # 遍历列表ls中的每一个数
    for num in ls:

        if num>x: #如果当前元素大于x,则添加到列表big中
            big.append(num)
        else: # 如果小于等于x,则添加到列表small中
            small.append(num)
            
    # https://blog.csdn.net/cadi2011/article/details/85857917        
    # 将大于x的数的列表作为键"key1"的值        
    dic["key1"]=big
     # 将大于x的数的列表作为键"key2"的值  
    dic["key2"]=small

x=int(input())
ls=input().split()
ls = list(map(int,ls))
dic={}
classify(x,ls)

print(sorted(list(dic.items())))


img