我第一次尝试使用新的赋值表达式并且可以使用一些帮助。
给定三行日志输出:
sin = """Writing 93 records to /data/newstates-900.03-07_07/top100.newstates-900.03-07_07/Russia.seirdc.March6-900.12.csv ..
Writing 100 records to /data/newstates-900.03-07_07/top100.newstates-900.03-07_07/India.seirdc.March6-900.6.csv ..
Writing 100 records to /data/newstates-900.03-07_07/top100.newstates-900.03-07_07/US.seirdc.March6-900.15.csv ..
"""
目的是仅提取State
(俄罗斯、印度和美国)和记录数(93,100,100)。所以想要的结果是:
[['Russia',93],['India',100],['US',100]]
这需要将以下步骤转换为 Python:
- 将每一行转换为列表元素
- 按空间分割,例如
['Writing', '93', 'records', 'to', '/data/newstates-900.03-07_07/top100.newstates-900.03-07_07/Russia.seirdc.March6-900.12.csv', '..']
- 用'/'分割第五个这样的标记并保留最后一个元素:例如
Russia.seirdc.March6-900.12.csv
- 用 '.' 分割那个元素 并保留第一个(0'th)元素,例如
Russia
这是我的错误尝试:
import fileinput
y = [[ z[4].split('/')[-1].split('.')[0],z[1]]
for (z:=x.split(' ')) in
(x:=sin if sin else fileinput.input()).splitlines())]