问题描述】
有例如如下列表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的所有值列表])] ,数据保持原列表的先后顺序不变。
可以在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())))