Python怎么把分布在两个列表中的姓名的成绩配对形成一个列表,该列表包含嵌套列表,每个子列表示对应名字和成绩
时间: 2024-05-01 16:18:56 浏览: 58
可以使用zip()函数将两个列表组合成一个元组列表,然后使用列表推导式将元组转换为嵌套列表。示例代码如下:
```python
names = ['Alice', 'Bob', 'Charlie']
scores = [85, 92, 78]
result = [[name, score] for name, score in zip(names, scores)]
print(result)
```
输出结果为:
```
[['Alice', 85], ['Bob', 92], ['Charlie', 78]]
```
其中,zip()函数将names和scores组合成元组列表,然后列表推导式将每个元组转换为一个嵌套列表。
相关问题
基于python写已知一个列表中存放的是一些学生的姓名,另外一个列表存放的是学生对应的考试成绩。两个列表长度相同。要求,把姓名和对应的成绩进行组合,形成一个列表。该列表包含一个嵌套列表,每个子列都是姓名和对应的成绩。最后输出形成的新列表。 【输入形式】 分两行输入,第一行输入姓名,按照字符串的方式输入,多个姓名之间用逗号分隔。第二行输入成绩,包含方括号,元素之间用英文逗号分隔。 【输出形式】 直接用print输出新的列表。
C知道:好的,根据您的要求,我会回答您的问题。对于您的第一个问题,可以使用以下代码实现:
names = input().split(",")
scores = eval(input())
result = [[names[i], scores[i]] for i in range(len(names))]
print(result)
输入示例:
张三,李四,王五
[90, 85, 95]
输出示例:
[['张三', 90], ['李四', 85], ['王五', 95]]
已知一个列表存放学生姓名,另外一个列表存放学生成绩。把姓名和成绩配对后,形成一个嵌套列表,按照成绩升序输出列表。 【输入形式】 第一行输入姓名,每个姓名用逗号分隔。第二行输入成绩,按照逗号分隔。 【输出形式】 直接用print输出列表 【样例输入】 tom,james,jack 89,34,78 【样例输出】 [['james', 34], ['jack', 78], ['tom', 89]]
这是一个简单的Python编程问题。以下是代码实现:
```python
names = input().split(',')
scores = input().split(',')
students = [[names[i], int(scores[i])] for i in range(len(names))]
students.sort(key=lambda x: x[1])
print(students)
```
输入姓名和成绩时,我们使用 `split()` 方法将字符串分割成列表。然后我们使用列表推导式创建一个嵌套列表,其中每个子列表包含姓名和对应的成绩。最后,我们使用 `sort()` 方法按照成绩升序排序并输出嵌套列表。
希望这个解决方案对你有所帮助!
阅读全文