python - 文件中列表的第一个和最后一个元素的字典
问题描述
我已经完成了这段代码:
def value(filename):
f=open(filename,'r')
bat_val={}
for line in f:
four_vals = line.split()
return four_vals
batch = four_vals[0]
x=four_vals[1]
y=four_vals[2]
for x,y in four_vals:
circle = x**2 + y**2
if circle <= 1:
value = four_vals[3]
return value
bat_val= {batch:value}
return bat_val
print(value('file))
由 9 行组成,每行有四个索引。如果第二个(x)和第三个元素满足 if 语句,我想制作所有行的第一个元素(键)和最后一个元素(值)的字典。但它不起作用,我看不出有什么问题。我的输出只是整个最后一行。
Ex:
1, 0.5, 0.5, 55
2, 0,4, 0,1 10
3, 0.9, 0.8 5
我想得到 {1:55, 2:10}
,第三行将不包括在内,因为 if 语句未完成。
解决方案
for line in f:
four_vals = line.split()
return four_vals
您的函数在遇到return
语句时结束,在本例中为上述语句。在您的情况下four_vals
,循环的每次迭代都会被覆盖,然后返回(它等于line.split()
文件的最后一行)。
此外,当您打开这样的文件时,您f=open(filename,'r')
还应该关闭它,或使用上下文管理器。
推荐阅读
- ios - 未找到模块“AdServices”(react-native)
- javascript - 以上两个promise的区别
- nestjs - Guard 说用户在 NestJS 中未定义
- angular - 如何使用角度形式创建步进形式
- c - 不能将“#define”作为函数参数传递,但可以传递“#define”的数组[n]
- shell - 使用 -name 的几个参数查找
- javascript - 使用 node-libcurl 发出 curl 请求会返回错误的身份验证错误响应
- php - 滚动到窗口底部时无限滚动加倍结果PHP MYSQL JQUERY
- javascript - React Carousel.Item 未呈现
- python - Python unittest pip 包