number = [1, 2, 3, 4] a, b, c, d = number print(a, b, c, d) 1 2 3 4 进程已结束,退出代码为 0 2.只想解压部,分丢弃其他值
可以使用任意变量名去占位
3.可迭代元素数量超过变量数,还是想解压出n个元素星号表达式(丢弃也可以使用星号成组的去除)
例如下面求均值的例子
#函数定义去掉一个最大值、一个最小值,求平均值
def drop_first_last(grade):
first, *middle, last = grade
print(middle)
def avg(number):
result = sum(number) / len(number)
return result
return avg(middle)
number = [7, 5, 5, 8, 9, 10, 15, 20, 30]
print(number)
#给给定的列表排序
number = sorted(number)
print(number)
result = drop_first_last(number)
print(result)
4.星号表达式的其他用法
(1)迭代元素变为可变长元组序列
不确定标签后元素的数目,直接打包后面定义函数解包
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)
(2)字符串操作中比如字符串的分割
line = 'some:u:8:*:233:5*:computer user:/vmware:/usr/bin/log'
# 利用切片进行分隔操作
first, *nothing, last = line.split(':')
print(first, last)
some /usr/bin/log
进程已结束,退出代码为 0
(3)丢弃元素时的*_



