1.2 从任意长度的可迭代对象中分解元素

# 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)

 

posted @ 2020-08-24 11:14  RoseLv  阅读(129)  评论(0)    收藏  举报