# 1.2 从任意长度的可迭代对象中分解元素
import math
#期末成绩去掉最高分和最低分,求平均分
def drop_first_last(grades):
first, *middle, last = grades
return middle
lst1=[100,60,60,60,20]
print(drop_first_last(lst1))
#带*的参数可接收多个元素
items=[1,10,7,4,8]
head,*tails=items
print(head,tails)
#根据子列表内的第一个元素的值来判断调取哪个函数
records=[
['foo',1,2],
['bar','hello'],
['foo',3,4],
]
def do_foo(x,y):
print('foo',x,y)
def do_bar(s):
print('bar',s)
for tag, *args in records:
if tag== 'foo':
do_foo(*args)
elif tag== 'bar':
do_bar(*args)
#分解出元素并且想丢弃某些值而不是某个值可以用*_
record=['age',50,123.45,(12,18,2012)]
name,*_,(*_,year)=record
print(name,year)