我有一个列表,其中包含多个示例列表,如下所示:
my_list = [
['Morocco', 'Fish', '0,012'],
['Morocco', 'Fish', '0,153'],
['Morocco', 'Fish', '0,114'],
['Morocco', 'Fish', '0,109'],
['Morocco', 'Fish', '0,252'],
['Spain', 'Fish', '0,012'],
['Spain', 'Fish', '0,113'],
['Spain', 'Fish', '0,116'],
['Spain', 'Fish', '0,250'],
['Spain', 'Fish', '0,266'],
['Italy', 'Fish', '0,112'],
['Italy', 'Fish', '0,025'],
['Italy', 'Fish', '0,224'],
['Italy', 'Fish', '0,256'],
['Italy', 'Fish', '0,245']]
我有一个变量,如下所示:
my_limit = 0.2
现在,对于每个列表,我希望在它超过my_limit
之前获得最后一个值。我希望该值存储在一个新变量中
这就是我所尝试的:
for l in my_list:
if row[-1] #<-- this is actually where I block.... I dont know how to fix it.
这是我期望的输出:
0,109
0,116
0,025
这只是一个在列表上迭代并在{}时报告{}的问题
您需要扩展此功能以处理边缘情况(即,如果第一个值超过限制,则会出现错误等)
您可能希望将您的列表拆分为每个商品的一个列表,因为当商品也发生变化时,这将触发
您可以使用itertools模块进行此操作
这里用groupby我们把所有连续的子列表组合在一起,它们在我们指定的位置上具有相同的值,在本例中是第一个位置,然后我们进入这些子列表,取满足我们条件的子列表,并在第一个不满足takewhile的子列表处停止我们只需要最后一个存储在循环末尾的
v
中我之所以进行分组,是因为这对我来说更有意义,但如果不需要这样的分组,我们也可以使用groupby将列表拆分为满足条件的子部分,以及不满足条件的子部分,方法是更改分组键
相关问题 更多 >
编程相关推荐