python - 在Python中划分两个列表的每个对应元素
问题描述
我在单独的文本文件中有两个列表,我需要将每个值除以另一个列表中的相应值。以下是两个文件中的一小部分数据:
738500.0
683000.0
647000.0
623500.0
607500.0
547000
644000
702000
735000
755000
765000
我已经像这样打开了两个列表:
average = open('average2mm.txt','r')
average_content = average.read()
average.close()
difference = open('difference2mm.txt','r')
difference_content = difference.read()
difference.close()
我想我必须使用正确的循环来划分两个列表,但我还没有设法完成它。
解决方案
一种可读、干净和安全的方法是:
with open('average2mm.txt','r') as average, \
open('difference2mm.txt','r') as difference:
for avg, diff in zip(average, difference):
avg, diff = avg.strip(), diff.strip()
if avg and diff:
ratio = float(avg) / float(diff)
print(ratio)
如果要将其存储在列表中:
result = []
with open('average2mm.txt','r') as average, \
open('difference2mm.txt','r') as difference:
for avg, diff in zip(average, difference):
avg, diff = avg.strip(), diff.strip()
if avg and diff:
ratio = float(avg) / float(diff)
result.append(ratio)
如果要写入另一个文件,可以遍历result
列表并写入文件,或者:
with open('average2mm.txt','r') as average, \
open('difference2mm.txt','r') as difference, \
open('ratio.txt', 'w') as ratiofile:
for avg, diff in zip(average, difference):
avg, diff = avg.strip(), diff.strip()
if avg and diff:
ratio = float(avg) / float(diff)
print(ratio, file=ratiofile)
# Or,
# ratiofile.write(f'{ratio}\n')
推荐阅读
- file - 批处理文件从文件夹中复制一次文件并等待下一个文件
- java - TableRow 正在提供反向 TextViews
- java - 多态性 + 重载 - 如何调用子类的多态/重载方法?
- sql-server - Azure Devops,在构建中测试部署
- mysql - 错误 2013 (HY000): 查询期间失去与 MySQL 的连接
- .htaccess - .htaccess - 重写,第一个参数可选
- html - 如何以 HTML 格式提交联系表格并接收电子邮件
- c# - 在 IQueryable 的 Select 语句中是否有 string.Join() 的替代方法?
- oracle - 在Oracle中选择多级类型
- java - Windows 应用程序:切换到嵌套在同一窗口内的 iframe 窗口