我在迭代和跟踪列表中不同点的各种索引和值方面遇到了一些问题(我对Python是新手)。你知道吗
我正在运行一系列的循环,但要确定它们的开始和结束时间。实验从0开始到50结束。你知道吗
下面是循环列表的样子:
c = [0, 10, 11, 48, 50.5, 0.48, 17, 18, 23, 29, 33, 34.67, 50.1, 0.09, 7, 41, 45, 50]
下面是输出的示例:
C 1:
Start: (0, 0) # starts at index 0, value 0
End: (4, 50.5) #ends at index 4, value 50.5
C 2:
Start: (5, 0.48)
End: (12, 50.1)
C 3:
Start: (13, 0.09)
End: (17, 50)
我能想到的一种方法是对c进行排序
c.sort()
这至少会将所有开始值放在列表的开头,将结束值放在列表的末尾。然而,我会失去他们原来的指数轨道。有人知道另一种方法吗?你知道吗
编辑:
这就是我目前所拥有的,如果有人能帮忙修改,那就太好了:
min = []
max = []
for i, (first,second) in enumerate(zip(c, c[1:])):
print(i, first, second)
if first < second:
min.append(first)
continue
if first > second:
max.append(first)
continue
我划分任务,构建一个
dictionary
,D
的递增序列然后以所需格式打印
为了在IDE中很好地打印dict
D
,我需要更宽的行限制假设开始值是列表的最小值,结束值是列表的最大值,有一种方法:
这还假设最小值和最大值没有重复值,或者如果有重复值,则可以获取第一个元素的索引,因为
index()
函数只返回它发现的第一个元素的索引,该元素等于参数。更多信息:https://docs.python.org/3.6/library/stdtypes.html#typesseq您的列表具有递增序列,因此更改位于某个数字大于其下一个数字的位置。要比较一个列表的所有连续对,可以使用
zip
如下:Iterate over all pairs of consecutive items from a given list为了跟踪列表索引,还可以使用^{}
所以这里有一个方法来获取所有开始/结束位置的索引/值。你知道吗
输出:
相关问题 更多 >
编程相关推荐