python split 方法不保留长度为0的元素
时间: 2024-02-01 14:13:55 浏览: 25
在Python中,split()方法默认会保留长度为0的元素,如果你想要移除长度为0的元素,可以使用filter()函数来过滤掉这些元素。例如:
```
s = "hello world "
result = list(filter(lambda x: x != '', s.split(' ')))
print(result)
```
输出结果为:['hello', 'world']
在这个例子中,我们首先使用split()方法将字符串s按空格分割成列表,然后使用filter()函数来过滤掉列表中长度为0的元素,最终得到的结果就是移除了长度为0的元素的列表。
相关问题
使用Python,首先输入n代表向量长度,其次输入u,v的元素,通过代码计算列表u与的内积,返回结果保留2位小数,若输入列表与v长度不同就返回
"Error: Length of u and v must be the same."
下面是代码实现:
```python
n = int(input("请输入向量长度n:"))
u = list(map(float, input("请输入向量u的元素,用空格隔开:").split()))
v = list(map(float, input("请输入向量v的元素,用空格隔开:").split()))
if len(u) != len(v):
print("Error: Length of u and v must be the same.")
else:
result = sum([u[i]*v[i] for i in range(n)])
print("u与v的内积为:{:.2f}".format(result))
```
示例输出:
```
请输入向量长度n:3
请输入向量u的元素,用空格隔开:1 2 3
请输入向量v的元素,用空格隔开:4 5 6
u与v的内积为:32.00
```
```
请输入向量长度n:4
请输入向量u的元素,用空格隔开:1 2 3 4
请输入向量v的元素,用空格隔开:4 5 6
Error: Length of u and v must be the same.
```
python 统计学生的课程成绩 课程名称和成绩用空格分隔,每门课程一行,遇空行按enter录入。按要求输入结束后得出得分最高的课程名称及成绩,得分最低的课程名称及成绩,平均分(保留2位小数) 本题要求连续输入课程名称和分数,直到输入内容为空时按enter键结束输入。 由于输人次数未知,因此可采用 while 循环实现。输人一门课程名称及成绩后,将输人的课程名称和成绩字符串通过 split()方法 用空格进行切分,生成一个小列表,即[‘语文’,‘87’]列表作为元素添加到列表中生成一个二维列表ls.即[‘语文’,’87’],[‘数学’,90’],[‘英语’,’92’],[‘化学’,’85’]。在循环执行过程中,取小列表里的“成绩”元素,并将其转化为数值和求累加和。注意累加器、在循环开始前要先给定初值 0。利用max()对ls 取最大值,取最大值的依据是二维列表1ls中每个小列表里的“成绩”元素,取出的最大值为[英语!,“921,再将最大值中的“课程名称”元素和“成绩”元素分别赋值给maxe 和maxs。同理,可以利用 min()取最小值。平均分可以通过累加和s除以二维列表 ls 的长度实现。
好的,下面是代码实现:
```python
ls = []
while True:
line = input()
if line == '':
break
course, score = line.split()
ls.append([course, int(score)])
total_score = 0
for item in ls:
total_score += item[1]
avg_score = round(total_score / len(ls), 2)
max_score = max(ls, key=lambda x: x[1])
min_score = min(ls, key=lambda x: x[1])
max_course, max_value = max_score[0], max_score[1]
min_course, min_value = min_score[0], min_score[1]
print(f"最高分课程:{max_course},成绩:{max_value}")
print(f"最低分课程:{min_course},成绩:{min_value}")
print(f"平均分:{avg_score}")
```
代码中使用了一个 `while` 循环来读取用户输入的课程名称和成绩,每次读取一行,然后通过 `split()` 方法将其分割成课程名称和成绩两个部分,并将其作为一个小列表添加到二维列表 `ls` 中。
在读取完所有数据后,我们遍历 `ls` 列表,累加每个小列表中的第二个元素(即成绩),计算出总成绩。然后根据总成绩和列表长度计算出平均分。
接着,使用 `max()` 和 `min()` 分别取得最高分和最低分的小列表,然后从这两个小列表中取出课程名称和成绩值,赋值给相应的变量。
最后,我们将结果输出到屏幕上。需要注意的是,我们使用了 f-string 来格式化输出结果,使其更加清晰易懂。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)