python - 使用多个 for 循环增加迭代器时遇到问题
问题描述
我是 Python 的初学者,我决定尝试一个脚本来帮助我完成我作为天气观察员的兼职工作。本质上,我有一个观察列表,并且我已经编写了正则表达式来收集我需要的信息并使用 xlwings 将其放入电子表格中。我有一个部分观测列表,我正在尝试从这些部分观测中提取天空状况。天空条件包含我在列表中称为“单词”的任何单词。我确信有更好的方法来做到这一点,但我试图让脚本查看列表的每个元素中的项目,然后确定其中一个关键词是否在元素中。如果找到了,我会将其添加到一个名为“找到”的新列表中,然后我最终想将此信息添加到 Excel 电子表格中。我的问题是我很难找到在不同天空条件下增加的地方。我需要它遍历 skycons 列表中一行中的每个元素,然后我需要它递增到下一行。我觉得我已经将增量移动到脚本的几个不同部分,但它仍然无法正常工作。它要么增加得太快,要么不会遍历行的所有元素,要么根本不会增加。这是代码... 它要么增加得太快,要么不会遍历行的所有元素,要么根本不会增加。这是代码... 它要么增加得太快,要么不会遍历行的所有元素,要么根本不会增加。这是代码...
skycons = [' -RA BR BKN008 OVC012 09/08 ',
' RA BR BKN008 OVC012 09/08 ',
' R02/2600VP6000FT -RA BR BKN008 OVC012 09/08 ',
' -RA BR SCT007 BKN013 OVC019 09/08 ',
' CLR 09/08 ']
i = 0
words = ['FEW', 'SCT', 'BKN', 'OVC', 'CLR']
found = []
for item in skycons[i].split():
print(skycons[i].split())
for word in words:
print(word)
if item.startswith(word):
found += item
print(found)
sky = " ".join(found)
print(sky)
i+=1
这可能是一团糟,我愿意接受建议。我基本上需要从每次观察中获取天空状况并将其插入电子表格中。我曾尝试使用正则表达式严格执行此操作,但它最终会抓取上述列表中不存在的其他观察元素。非常感谢任何帮助。
解决方案
found += item
不像你认为的那样做。看这个:
>>> found = []
>>> found += 'OVC'
>>> found
['O', 'V', 'C']
我不认为这是你所期望的。它将每个字符附加到列表中,而不是整个字符串。请尝试append()
:
found.append(item)
此外,i
没有在正确的时间增加。我认为您需要另一个外部循环来通过 METAR。这就是我最终得到的结果:
skycons = [' -RA BR BKN008 OVC012 09/08 ',
' RA BR BKN008 OVC012 09/08 ',
' R02/2600VP6000FT -RA BR BKN008 OVC012 09/08 ',
' -RA BR SCT007 BKN013 OVC019 09/08 ',
' CLR 09/08 ']
words = ['FEW', 'SCT', 'BKN', 'OVC', 'CLR']
for metar in skycons:
found = []
for item in metar.split():
for word in words:
if item.startswith(word):
found.append(item)
sky = " ".join(found)
print(sky)
...输出...
BKN008 OVC012
BKN008 OVC012
BKN008 OVC012
SCT007 BKN013 OVC019
CLR
推荐阅读
- ios - 有没有办法提取已安装的 Testflight 应用程序并将其压缩为 .ipa 文件?
- assembly - 何时使用某个调用约定
- javascript - VS Code console.log 不输出到控制台
- tensorflow - Tensorflow迭代器错误超出范围:初始化全局变量时序列结束
- google-cloud-firestore - Cloud Firestore 真的可以用来在玩家之间同步游戏吗?
- angular - 如何将接口作为参数发送到角度服务中的 HTTP 获取请求
- c++ - 为什么在 cpp/c 中使用指针引用时自增运算符 (++) 不起作用
- postman - Autodesk Forge Reality 捕获照片场景 ID 不存在
- docker - Why is the Docker entrypoint script not starting?
- r - 如何得到 f(x)=kx+d 形式的线性回归线?