python-在给定条件的情况下找到列表中下一项的位置

阿德里安波特尔

我是Python的新手,所以对它的精简解释将不胜感激。我有从csv文件中读取的数据,这些文件已经过以下格式:[[t1,n1,v1),(t2,n2,v2),(t3,n3,v3),... ]

我想做的是,给定v中的一个非零值,找到v值为零的n的下一次出现的位置,并确定t值的差。到目前为止,这是我的代码:

d=[]
for i,x in enumerate(list):
    if x[2]!=0:
        for j,y in enumerate(list):
            if x[1]==y[1] and j>i and y[2]==0:
                d.append(y[0]-x[0])
    else: d.append(0)

print d

我是在Excel中使用MATCH和OFFSET函数完成此操作的,但在转换到索引和此处枚举时,我有点迷失了。

我的第一个问题是,嵌套的for循环在找到第一个匹配项时不会停止,因此它会继续为每个匹配的n值附加t值差。我只想找到第一场比赛。

我的第二个查询是是否有更好的方法来执行此操作,因此嵌套的for循环并不总是从列表的开头开始,而是从索引i开始。我正在处理相当大的数据集。

编辑:我设法使它工作,尽管它很不雅致(时间和注释是列表中每个元组的第一和第二元素的列表):

d=[]
for i,x in enumerate(list):
    if x[2]!=0:
        d.append(notes[i+1:].index(x[1]))
    else: d.append("NA")


dur=[]
for i,j in enumerate(d):
    if j!="NA":
        dur.append(times[i+j+1]-times[i])
    else: dur.append(0)

我希望有一个更清洁的解决方案的想法。

海莉·吉洛(Hayley Guillou)

首先要注意的是,拥有一个名为list的列表并不是很好。我不是100%清楚您要寻找什么,但是我认为这可行。

d = []
for index, tup in enumerate(lst):
    if tup[2] != 0:
        for next in lst[index + 1:]:
            if next[2] == 0 and tup[1] == next[1]:
                d.append(next[0] - tup[0])
                break
        if len(d) - 1 != index:
            d.append('NA')
    else:
        d.append('NA')

例如:

输入: lst = [(1,3,0),(1,5,6),(1,2,4),(3,4,1),(4,2,0),(7,5,0),(8,4,0)]

输出: d = ['NA', 6, 3, 5, 'NA', 'NA', 'NA']

如果您只需要时间并且不需要数组排队,则只需删除任何附加“ NA”的条件即可。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在给定条件的情况下访问列表在Python中的另一个列表上

Python:如何在给定开始日期和增加的天数的情况下找到一周?

如何在Python 3中没有for循环的情况下访问数组列表中的第一项?

在给定当前项目列表的情况下,替换字典Python中的元素

在给定索引开始的情况下拆分python列表

Python | 在给定每个索引一定数量范围的情况下,如何将值分组到主列表中的不同列表

Python:在给定特定键顺序的情况下,如何将两个分组和重塑列表

参考列表中的下一项:python

Python:根据元组列表中前一项的总和删除下一项

如何在python中给定列表的情况下创建一系列JSON对象?

Python:在符合给定条件的第一个对象列表中找到位置

在给定目录结构的情况下如何导入python模块

Python 3.4:如何在给定完整路径的情况下导入模块?

python / pandas在给定起点的情况下从数据框中删除行的方法

网格如何在给定起始索引的情况下找到下一行的第一个位置的索引

如何在给定一个滞后差的情况下减去两列并在Python中按多列分组

在不使用python中的索引函数的情况下获取列表中的下一个元素

在 Python 中,如何在不使用 itertools 的情况下从给定元组列表中组合一组元组?

是否可以在Python列表推导中访问当前项和下一项的值?

Python:在给定两个预制函数的情况下,如何有效选择要使用的函数?

在给定目标大小的情况下,如何在python中调整图像大小的同时保持宽高比?

在python中,如何最好地在给定变量路径和值的情况下将key:value插入json

在给定某些约束的情况下,如何使用Python浏览目录中的文件并输出熊猫数据框?

给定一个列表列表,如何在没有熊猫的情况下使用python获取一组类似output_1的列表?

如何在 Python 字典中找到列表的最后一项?

如何在Python分布中给定样本列表的情况下计算值的概率?

在python中给定搜索的情况下,获取结果更快。字典或熊猫数据框的列表?

Python协程可以在不先执行“下一步”的情况下“发送”吗?

在给定具有R的位置和条件的情况下更改向量中的值