python 怎么写通过逻辑指针进行数据切片,找出读入数据中最新价是偶数的行?

哥只是个传说 2024-06-24 02:32:53
最佳回答
对于perl的一行式perl程序来说,选择要输出的、要删除的、要插入/追加的行是非常容易的事情,因为print/say决定行是否输出/插入/追加/删除。虽然简单,但对于广泛应用在sed的示例还是可以拿到这里来讨论一番。因为输出/删除/插入/追加行都是通过print/say在不同条件下的操作,所以本文只会介绍输出操作,删除/插入/追加其实都是同样的原理。输出第一行$ perl -lne 'print;exit' file.log输出第13行$ perl -ne 'print if $. == 13' file.log输出前10行$ perl -ne 'print if $.<=10' file.log$ perl -ne 'print if 1..10' file.log$ perl -ne '$. <= 10 && print' file.log$ perl -ne 'print; exit if $. == 10' file.log输出最后一行$ perl -ne '$last=$_;end{print $last}' file.log或者通过文件结尾eof来判断:$ perl -ne 'print if eof' file.log这里的eof函数的作用是:如果下一行读取到了文件尾部eof,就返回1。否则输出倒数10行这个实现起来可能稍显复杂,但逻辑很简单:向一个数组中添加10行元素,如果数组元素个数超过了10,则剔除数组的第一个元素。$ perl -ne 'push @lines,$_;if(@lines>10){shift @lines;}end{print @lines}' /etc/passwd这里是shift一个元素来保证"窗口"的稳定性:最多只有10个元素。另一种稳妥的方式是直接切片,从数组中取最后10个元素:$ perl -ne 'push @lines,$_;@lines = @lines[@lines-10..$#lines] if @lines>10;end{print @lines}' /etc/passwd输出倒数第11行到倒数第2行有了前一个示例作为基础,这个需求很容易实现。保留一个11行元素的数组,最后输出前10个元素即可。$ perl -ne 'push @a,$_;shift @a if @a>11;end{print @a[0..$#a-1]}' /etc/passwd输出文件的第偶数行这个很简单,只需判断行号的奇偶性即可。$ perl -ne 'print if $. % 2 == 0' file.log$ perl -ne 'print unless $. % 2' file.log输出能匹配的行$ perl -ne 'print if /regexp/' file.log输出两个匹配之间的行$ perl -ne 'print if /regexp1/../regexp2/' file.log输出匹配行的前一行只需将每行保留到变量中,如果当前行匹配了,则输出上一行保存的值。$ perl -ne '/regexp/ && $last && print $last;$last = $_' file.log如果想要输出匹配的前m行,只需把这些数量的行保存到数组中,并不断地shift剔除就可以。输出匹配行的后一行$ perl -ne '$p && print; $p = /regexp/' file.logperl中正则表达式的匹配操作返回的是成功与否的布尔真假,所以$p = /regexp/表示如果匹配了,则$p的值为真,否则为假。如果$p为真,则下一行将被输出,且继续对输出行进行匹配,如果输出行仍然能匹配,则继续输出下一行。上面的过程可以改写成逻辑更为清晰的一行式:$ perl -ne 'if($p){print;$p=0}++$p if /regexp/' file.log上面的$p是一个状态标记变量,如果匹配成功,就标记为真值,并在输出的时候重置状态变量。还可以采用另一种处理逻辑:自己编写从<>读取行的while循环,如果匹配了就继续读入下一行。因为读入的下一行可能继续匹配,所以在while循环中使用redo逻辑回到while循环的开头。$ perl -se 'while(<>){if(/$reg/){if(eof){ exit; }print $_ = <>;}redo if /$reg/;}' -- -reg="regexp" file.log输出匹配行及其后5行上面采用状态标记变量$p,这个状态标记变量可以更深入地使用。如果匹配了,则$p设置为5,然后输出后面的行时对$p自减。$ perl -ne 'if($p){print;$p--}if(/regexp/){$p = 5;print};' file.log连续行去重$ perl -ne 'next if "$line" eq "$_";print $line = $_;' file.log 20210311
汇率兑换计算器

类似问答
  • 大数据100指数是什么
    • 2024-06-24 06:35:17
    • 提问者: 未知
    大数据系列指数由深圳证券信息有限公司与南方基金管理有限公司[微博]、新浪财经联合编制,其发布与管理同巨潮100指数。九、免责声明 同巨潮100指数。介绍阅读 【原创声明】...
  • 金盛a50指数的涨跌是根据什么数据决定的?可以通过哪些数据来分析?
    • 2024-06-24 02:33:41
    • 提问者: 未知
    a50指数是根据新华富时a股指数编制规则,从a股市场选择合格的最大50家公司组成的指数。其各项指标,包括业绩表现、流动性、波动性、行业分布和市场代表性均处于市场领先水平。该指数是以沪深两市按流通比例调整后市值最大的50家a股公司为样本,以2003年7月21日为基期,以5000点为基点,每年1月、4月、7月和10月对样本股进行定期调整。目前a50指数占有合格a股市场流通市值的33.2%,包括了**联...
  • 大数据行业好找工作吗 大数据好找工作吗
    • 2024-06-24 23:41:44
    • 提问者: 未知
    大数据的就业领域是很宽广的,不管是科技领域,还是食品产业,零售业等等,都是需要大数据人才进行大数据的处理,以提供更好的用户体验,以及优化库存,降低成本,预测需求。1. 数据分析师数据分析师是数据师的一种,指的是不同行业中,专门从事行业数据搜集、整理、分析,并依据数据做出行业研究、评估和预测的专业人员。在工作中通过运用工具,提取、分析、呈现数据,实现数据的商业意义。作为一名数据分析师、至少需要熟练s...
  • 中怎么控制一行的输出数据
    • 2024-06-24 09:35:02
    • 提问者: 未知
    试试这个程序,程序命名为fileview.c 输出结果为:可以在屏幕上打印本程序,每敲一次回车输出一行#include<string>#include<iostream>#include<fstream>using namespace ...
  • 找股指期货分笔成交数据,tick数据excel格式
    • 2024-06-24 21:50:37
    • 提问者: 未知
    百度或谷歌搜“bpyh资讯”,有这种高频历史数据,从2010年上市开始,每秒2笔tick
  • 企业进出口数据怎么查询,那个**数据准确?
    • 2024-06-24 08:42:32
    • 提问者: 未知
    不是每个**都对2113外提供详细的5261海关数据的,大部分**只公布海关统计数4102据。能够1653通过海关官网或数据公司查到的主要有这些**,北美 南美 欧洲几个亚洲几个。一些外贸或外语相关的网站也有历史海关数据免费查询。实时的数据需要购买,外销通海关数据外贸**。扩展资料: 对外...
  • 通达信怎么导入五分钟数据数据
    • 2024-06-24 13:10:04
    • 提问者: 未知
    1、通达信下载中心可直接下载最近几个月的五分钟数据。2、用微盛的免费wdz自助程序,可输出2000年以后的五分钟数据。可直接输出通达信格式,然后在通达信中就可以看以前的历史五分钟k线了。
  • 从数据库中统计数据表中行的个数?
    • 2024-06-24 01:26:19
    • 提问者: 未知
    private sub geshu(xx as integer)dim i as integerdim conn as adodb.connectiondim workstring as stringdim sqlcommand as stringdim rs as adodb.recordsetset conn = new adodb.connectionworkstring = "p...
  • 到哪里可以找行业板块指数的历史数据?
    • 2024-06-24 00:36:20
    • 提问者: 未知
    我以 华泰证券 通达信系统为例...板块指数:就是采用指数分析方法,将同一板块的个股按不同的权重方式生成相关指数,它是板块各股股价变化的集合,是对各板块走势的整体反映。
  • 怎么查看股票指数的真实价格数据?
    • 2024-06-24 12:17:35
    • 提问者: 未知
    股指是股指,就是成分股价格的加权平均数,股指不可以交易 股指期货是股指期货,价格受股指和市场两方面影响,f=p*e^(rt) 其中r为必要收益率,t为合约到期时间,p为现货价格,f为期货理论价格
汇率兑换计算器

热门推荐
热门问答
最新问答
推荐问答
新手帮助
常见问题
房贷计算器-九子财经 | 备案号: 桂ICP备19010581号-1 商务联系 企鹅:2790-680461

特别声明:本网为公益网站,人人都可发布,所有内容为会员自行上传发布",本站不承担任何法律责任,如内容有该作者著作权或违规内容,请联系我们清空删除。