7-1. sdut-求全排列
from itertools import *
n=int(input())
for i in permutations([int(x) for x in range(1,n+1)]):
print(*i,end='\n',sep='')
7-2. sdut-列表数字元素加权和(2)
def find(l,cnt):
sum=0
for i in l:
if isinstance(i,list):
sum+=find(i,cnt+1)
else:
sum+=i*cnt
return sum
l=eval(input())
print(find(l,1))
7-3. sdut-列表或元组的数字元素求和(yeild)
def cycle(l):
sum=0
for i in l:
if isinstance(i,int):
sum+=i
elif isinstance(i,list) or isinstance(i,tuple):
sum+=cycle(i)
return sum
l=eval(input())
print(cycle(l))
7-4. sdut-学生互助组队
n = int(input())
girl, boy, student = [], [], []
for i in range(n):
id, name = input().split()
student.append(name)
if id == "0":
girl.append(name)
else :
boy.insert(0,name)#男生反向排序
dict1, dict2 = dict(zip(girl, boy)), dict(zip(boy, girl))
for i in range(n//2):
if student[i] in dict1.keys():
print(student[i],dict1[student[i]])
else:
print(student[i],dict2[student[i]])
7-5. sdut-求指定层的元素个数
dic={}
def count(l, n):
for i in l:
dic[n] = dic.get(n, 0)+1
if isinstance(i, list):
count(i, n+1)
l = eval(input())
n = int(input())
count(l,1)
print(dic.get(n,0))
7-6. sdut-oop-8 分数四则运算
from fractions import Fraction as f#起了一个别名
n = int(input())
for i in range(n):
a = input()
if a.find('+') != -1:
l = a.split('+')
print(f(l[0]) + f(l[1]))
elif a.find('-') != -1:
l = a.split('-')
print(f(l[0]) - f(l[1]))
elif a.find('*') != -1:
l = a.split('*')
print(f(l[0]) * f(l[1]))
else:
l = a.split("\\")
print(f(l[0]) / f(l[1]))
7-7. sdut-分数加减法
from fractions import Fraction as f#起了一个别名
while 1:
try:
a = input()
if a.find('+') != -1:
l = a.split('+')
print(f(l[0]) + f(l[1]))
elif a.find('-') != -1:
l = a.split('-')
print(f(l[0]) - f(l[1]))
except: break