python - name, *line = input().split() 如何在 python 3 中工作?
问题描述
我正在解决一个问题,以在 HackerRank 上的 python 3 中找到其他 n 名学生中一名学生的平均分数。我还没有为它写代码。但是在 HackerRank 中,他们已经为我们提供了一些代码,比如接受输入的代码。我不明白 *line = input().split() 实际在做什么。
我知道 .split() 的作用。但这整条线令人困惑。
This is the code that has been already provided :
if __name__ == '__main__':
n = int(input())
student_marks = {}
for _ in range(n):
name, *line = input().split()
scores = list(map(float, line))
student_marks[name] = scores
query_name = input()
解决方案
* 用于从 split 语句中获取额外的回报。
所以如果你有:
>>> first, *rest = input().split()
>>> print(first)
>>> print(*rest)
运行它并输入“你好,我的名字是鲍勃”它会打印出来
hello
['my', 'name', 'is', 'bob']
另一个例子是:
>>> a, b, *rest = range(5)
>>> a, b, rest
(0, 1, [2,3,4])
它也可以用于任何可能导致一些有趣情况的位置
>>> a, *middle, c = range(4)
>>> a, middle, c
(0, [1,2], 3)
推荐阅读
- javascript - 是否有可能,如果我们从方法调用的输入字段中获取一个值,以便稍后在 Angular 中调用的不同方法上使用该值
- docker - docker 中的 nginx 无法与 localhost 对话
- javascript - display:block 不能识别 TR 中的 TD?
- android - 如何修复这个原始查询
- dialogflow-es - 如何在不使用后备意图的情况下保存语法错误的用户输入?
- python - 在两个文件之间共享函数
- swift - 如何在 SwiftUI 中删除“表单”的顶部空间?
- node.js - Nodejs从Promise Async Function返回对象并将其显示在网页上?
- python - 为什么我的 Python 服务器不能使用 select.select() 同时处理来自多个客户端的数据?
- pandas - 一次可以在索引值上使用 pct_change() 吗?