python 列表比较不同物质的吸热能力_python列表里面根据一定的条件挑选元素

update:

之前一版是错的,忽略了两层栈深还必须ticket、spce连续的要求

换个解法,代码有些冗长

#!/usr/bin/env python

# -*- coding: utf-8 -*-

def is_ticket(node):

return node.startswith('ticket')

def is_spec(node):

return node.startswith('spec')

def deal1(L):

if L:

node = L.pop(0) # 无论何种,都会使表长 -1

if is_ticket(node):

return node

return None

def deal2(L):

def match_ts(L):

node1, node2 = L[:2]

return is_ticket(node1) and is_spec(node2)

if len(L) < 2:

return False

elif match_ts(L):

del(L[:2]) # 表长 -2

return True

else:

return False

def deal4(L):

def match_ttss(L):

n1, n2, n3, n4 = L[:4]

return is_ticket(n1) and is_ticket(n2) and is_spec(n3) and is_spec(n4)

if len(L) < 4:

return False

elif match_ttss(L):

del(L[:4]) # 表长 -4

return True

else:

return False

def findout_no_spec_tickets(L):

res = []

while len(L):

if deal4(L):

continue

elif deal2(L):

continue

ret = deal1(L)

if ret:

res.append(ret)

return res

L =["ticket1","ticket2","spec1","spec2",

"ticket3","ticket4","spec3",

"ticket5","spec4","spec5",

"ticket6","ticket7","ticket8",

"ticket9","ticket10","spec6","spec7",

"ticket11","ticket12",

"ticket13","spec8",

"ticket14","spec9",

"ticket15","ticket16","ticket17",

"ticket18","spec1",

"ticket19",

"ticket20","spec2",

"ticket21"]

if __name__ == '__main__':

res = findout_no_spec_tickets(L)

print(res)

还有个短的写法, 无非是前向判断,滤出非'ts', 'ttss':

def is_ticket(node):

return node.startswith('ticket')

def find(L):

length = len(L)

for i in range(length):

if is_ticket(L[i]):

if i == length - 1:

yield L[i]

elif length - 4 < i < length - 1:

if is_ticket(L[i+1]):

yield L[i]

else:

if is_ticket(L[i+1]) and (is_ticket(L[i+2])

or is_ticket(L[i+3])):

yield L[i]

if __name__ == '__main__':

print(list(find(L)))

--------------------------------before---------------------------------------

用栈是最优的

def findout_no_spect(L):

def is_ticket(s): return s.startswith("ticket")

def is_spec(s): return s.startswith("spec")

no_spec_tickets = []

stack = []

for i in L:

if stack and is_spec(i): stack.pop()

if is_ticket(i): stack.append(i)

if len(stack) > 2: no_spec_tickets.append(stack.pop(0))

no_spec_tickets.extend(stack)

return no_spec_tickets

输出

>>> find_no_spect(L)

['ticket6', 'ticket7', 'ticket8', 'ticket11', 'ticket12']

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/503612.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java中arraycopy的用法_[jdk源码阅读系列]Java中System.arraycopy()的用法

本文转载&#xff0c;原文链接&#xff1a;3分钟了解Java中System.arraycopy的用法 - 伊万夫斯基 - 博客园 https://www.cnblogs.com/benjieqiang/p/11428832.html3分钟了解Java中System.arraycopy的用法System提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复…

人工智能python小程序_Python:一个可以套路别人的python小程序

一个可以套路别人的python小程序~先简要介绍一下程序。程序是使用pycharm工具&#xff0c;python语言所写。程序包括客户端 client.py 和服务器端 server.py 两部分&#xff0c;利用了python中的socket包。咳咳&#xff0c;使用方法来了&#xff01;首先&#xff0c;你需要你和…

java spring hiberate_Java程序员:Spring Boot和Hibernate一起使用的技巧

Hibernate不需要多介绍&#xff0c;它是Java中最受欢迎的ORM。同样&#xff0c;Spring Boot是功能最强大且易于使用的框架。本文并不是描述一些关于Hibernate或Spring Boot的用法&#xff0c;因为有很多。相反&#xff0c;我们将研究同时使用它们时可能遇到的一些常见错误以及如…

postgresql 查询序列_RazorSQL for Mac(数据库工具查询) v9.0.9

RazorSQL Mac激活版是一款专门为mac用户推出的数据库管理软件&#xff0c;允许您从一个数据库工具查询&#xff0c;更新&#xff0c;导航和管理所有主要数据库&#xff01;软件特色RazorSQL 是一个非开源的功能非常强大数据库查询工具、SQL的编辑、数据库管理工具。支持通过 JD…

vsm特征提取java_文本特征提取方案汇总

文本特征提取方案汇总文本分析是机器学习算法的主要应用领域。但是&#xff0c;文本分析的原始数据无法直接丢给算法&#xff0c;这些原始数据是一组符号&#xff0c;因为大多数算法期望的输入是固定长度的数值特征向量而不是不同长度的文本文件。一、文本数据的表示模型​ 文本…

脚本启动显示查询频繁被服务器防御_又被CC攻击弄得心有余悸?莫怕!这里教你如何防御...

转自CSDN&#xff0c;博主&#xff1a;一只IT小小鸟。CC攻击原理HTTP Flood 俗称CC攻击(Challenge Collapsar)是DDOS(分布式拒绝服务)的一种&#xff0c;前身名为Fatboy攻击&#xff0c;也是一种常见的网站攻击方法。是针对 Web 服务在第七层协议发起的攻击。攻击者相较其他三层…

java 怎么获取形参名_获得方法形参名称列表 -- 哦也,搞定!!

JAVA获取类的方法的参数名 – 老话题,新方法!!折腾了一天,终于搞定了.测试了nutz所有的类,均读取正常!! 完美读取任何class的变量名信息! 呵呵,当前,前提是编译时含debug信息.无任何依赖,不需要asm,不要其他任何字节码工具,纯标准JDK API实现. 核心代码,仅一个方法,130行,哦也!…

robotframework安装_python3.9.0 + robotframework + selenium3 实例体验

在win10上安装python3.9.0robotframework中我们做了基本的使用robot framework的环境搭建&#xff0c;这一章主要通过一个简单的实例来体验下robot framework的使用方式、运行、报告和日志(非常漂亮的自动化测试报告噢&#xff01;)。首先我们打开RIDE&#xff0c;快捷键 ctrln…

vmware 搭建k8s无法ping通子节点_一波四折 —— 记一次K8S集群应用故障排查

一波四折——记一次K8S集群应用故障排查Part1 初露端倪一个周四的下午&#xff0c;客户的报障打破了微信群的平静。“我们部署在自建K8S集群上的应用突然无法正常访问了&#xff0c;现在业务受到了影响&#xff01;”收到客户的报障&#xff0c;我们立刻响应&#xff0c;向客户…

java bytebuffer string_Java中的ByteBuffer get()方法

读取缓冲区当前位置的值&#xff0c;然后使用get()java.nio.ByteBuffer类中的方法将其递增。此方法返回当前缓冲区位置上的值。另外&#xff0c;如果发生下溢情况&#xff0c;则抛出BufferUnderflowException。演示此的程序如下所示-示例import java.nio.*;import java.util.*;…

自学python编程基础科学计算_Python基础与科学计算常用方法

Python基础与科学计算常用方法本文使用的是Jupyter Notebook&#xff0c;Python3。你可以将代码直接复制到Jupyter Notebook中运行&#xff0c;以便更好的学习。导入所需要的头文件import numpy as npimport numpy as npimport matplotlib as mplfrom mpl_toolkits.mplot3d imp…

php中删除文件夹内容吗,如何使用PHP删除包含内容的文件夹

小编典典此功能将允许您删除任何文件夹(只要可写)及其文件和子目录。function Delete($path){if (is_dir($path) true){$files array_diff(scandir($path), array(., ..));foreach ($files as $file){Delete(realpath($path) . / . $file);}return rmdir($path);}else if (is…

php多维数组删除指定元素,如何删除多维数组中指定元素?

[0] > Array ( [v] > 1 [fup] > 0 [n] > 服务器 [s] > Array ( [0] > Array ( [v] > 2 [fup] > 2 [n] > one [s] > Array ( [0] > Array ( [v] > 3 [fup] > 41 [n] > one ) [1] > Array ( [v] > 4 [fup] > 1 [n] > two …

python有趣的简单代码_简单几步,100行代码用Python画一个蝙蝠侠的logo

转自&#xff1a;菜鸟学Python蝙蝠侠作为DC漫画的核心人物之一&#xff0c;一直都受到广大粉丝的喜爱&#xff0c;而笔者作为DC的铁杆粉丝&#xff0c;自然也是老爷(粉丝对蝙蝠侠的昵称)的支持者。今天&#xff0c;笔者就用Python来画一个蝙蝠侠的logo&#xff0c;大概就是下图…

iis7php怎么301重定向,iis7/8设置网站301重定向的方法

准备条件&#xff1a;a、一台装有win2008以上版本的服务器 b、iis启用并且运行正常 c、在网站程序存放目录中单独创建个目录&#xff0c;目录里面留空即可(为了方便区分&#xff0c;目录名称可以设置为站点名称301&#xff0c;例如fcblog_301)1、打开Internet信息服务…

结构体内元素不确定_查漏补缺!高中三年生物最易忽略、易错的30个知识点整理不容错过...

高中生物的知识体系基本上是由大约数十个核心概念为基础构建起来的&#xff0c;这些概念包括细胞、细胞分裂、光合作用、呼吸作用、基因、染色体、遗传、变异、进化、生化系统等等&#xff0c;今天学姐来帮助你们整理一下高中三年中最容易忽略&#xff0c;也是最容易出错的30个…

基于单片机超声波测距系统的设计_一种基于UWB技术实现的测距防撞系统

叉车被广泛应用于工厂车间、仓库、流通中心和配送中心等&#xff0c;大大提高了对成件托盘货物进行装卸、堆垛和短距离运输作业的运输效率&#xff0c;几乎是所有车间必不可少的运输工具。但目前&#xff0c;简单方便的同时&#xff0c;安全事故(剐蹭、碰撞、碾压、撞车等)却也…

php zend 多个站错误,php – 如何显示Zend框架抛出的异常错误

APPLICATION_ENV环境变量的值是多少.ZF应用程序中的标准public / index.php执行以下操作&#xff1a;// Define application environmentdefined(APPLICATION_ENV)|| define(APPLICATION_ENV, (getenv(APPLICATION_ENV) ? getenv(APPLICATION_ENV) : production));这意味着如果…

vb.net中递归退到最外层_数组中的逆序对

题目描述在数组中的两个数字&#xff0c;如果前面一个数字大于后面的数字&#xff0c;则这两个数字组成一个逆序对。输入一个数组&#xff0c;求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007输入描述:题目保证输入的数组中没有的相同的…

php5 数据库框架,数据库 · FastAdmin - 基于ThinkPHP5的极速后台开发框架文档 · 看云...

这里提供的是数据库表字段规则在你创建表时使用&#xff0c;当按如下的规则进行字段命名、类型设置和备注时使用php think crud -t 表名生成CRUD时会自动生成对应的HTML元素和组件## 根据字段类型| 类型 | 备注 | 类型说明 || --------- | ---- | ----------------------------…