大于身高的平均值 (10分)
中小学生每个学期都要体检,要量身高,因为身高可以反映孩子的生长状况。现在,一个班的身高已经量好了,请输出其中超过平均身高的那些身高。程序的输入为一行数据,其中以空格分隔,每个数据都是一个正整数。程序要输出那些超过输入的正整数的平均数的输入值,每个数后面有一个空格,输出的顺序和输入的相同。

输入格式:
在一行输入中一个班的身高值,以空格分隔。

输出格式:
在一行输出超过输入的平均数的输入值,以空格分隔。

输入样例:
143 174 119 127 117 164 110 128

输出样例:
143 174 164 

代码:
lis = list(input().split())
for i in range(len(lis)):
 lis[i] = int(lis[i])
for i in range(0,len(lis)):
    if(int(lis[i]) > int(sum(lis))/int(len(lis))):
        print(str(lis[i])+' ',end='')
列表或元组的数字元素求和 (10分)
求列表中数字和,列表中嵌套层次不限2层

输入格式:
在一行中输入列表或元组

输出格式:
在一行中输出数字的和

输入样例:
[11,2,[3,7],(68,-1),"123",9]

输出样例:
99

思路:由于不确定元素类型,必须通过某个函数来进行判断并提取结果

代码:
def getint(s):
    if type(s) == int:
        return s
    elif type(s) == str:
        return 0
    elif type(s) == list or type(s) == tuple:
        result = 0
        for i in range(0,len(s)):
            result += getint(s[i])
        return result
    else:
        return 0

s = list(eval(input()))
sum = 0
for i in range(0,len(s)):
    sum = sum + int(getint(s[i]))
print(sum)
列表数字元素加权和(2) (20分)
输入一个嵌套列表,嵌套层次不限,根据层次,求列表元素的加权和。第一层每个元素 的值为:元素值*1,第二层每个元素的值为:元素值*(-2),第三层每个元素的值为:元素值*3, 第四层每个元素的值为:元素值*(-4),...,以此类推!

输入格式:
在一行中输入列表

输出格式:
在一行中输出加权和

输入样例:
在这里给出一组输入。例如:
[1,2,[3,4,[5,6],7],8]

输出样例:
16

思路:
和上题类似,先判断类型,再根据条件提取数字并运算后输出
代码:
def getint(s,count):
    if type(s) == int:
        if(count%2 ==0):
            return s * count * -1
        else:
            return s * count
    elif type(s) == str:
        return 0
    elif type(s) == list or type(s) == tuple:
        result = 0
        for i in range(0,len(s)):
            result += getint(s[i],count+1)
        return result
    else:
        return 0

s = list(eval(input()))
sum = 0
for i in range(0,len(s)):
    sum = sum + int(getint(s[i],1))
print(sum)
通过两个列表构建字典 (10分)
输入两行字符串,以空格为分隔,将每行字符串存储为列表形式。将第一个列表的元素值作为键,将第二个列表中对应顺序的元素作为值,构建一个字典,按键升序排列后输出字典的所有键值对列表。

输入格式:
输入两行字符串,分别以空格为分隔存为列表。

输出格式:
按键的升序,输出字典键值对列表。

输入样例:
集美大学 厦门 361021
输出样例:
[('城市', '厦门'), ('学校', '集美大学'), ('邮编', '361021')]

代码:
x = input().split()
y = input().split()
ans = []
for i in range(len(x)):
    a = x[i]
    b = y[i]
    ans.append((a,b))
ans.sort()
print(ans)
字典合并与排序 (10分)
用户分两行输入两个字典,格式参照输入要求;请设计程序实现:

将两个字典合并为一个字典,如果两个字典中分别有相同的键(key),需将对应的值相加后作为字典中该键对应的新值。

输入格式:
用两行输入字典格式的两个数据,字典中键的数据类型统一为数字或字符,字典中值的数据均为数字。

输出格式:
输出合并后的字典数据,字典数据要求按照键的增序排列。

输入样例1:
输入1:

{1:2,3:9,5:2,6:2}
{2:1,6:3,7:9,1:4}
输出样例1:
输出1:

{1: 6, 2: 1, 3: 9, 5: 2, 6: 5, 7: 9}
输入样例2:
输入2:

{'c':3,'a':4,'n':1}
{'a':3,'c':7,'b':10}
输出样例2:
输出2:

{'a': 7, 'b': 10, 'c': 10, 'n': 1}

代码:
dict1 = eval(input())
dict2 = eval(input())
temp = {}
temp.update(dict1)
temp.update(dict2)
for i in dict1.keys():
    if dict1.get(i) != temp.get(i):
        temp[i] = temp.get(i) + dict1.get(i)
ans = dict.fromkeys(sorted(temp))
for i in ans.keys():
    ans[i] = temp.get(i)
print(ans)