Python 在迭代 for 循环时检查其他行

我有这个元组列表,如下所示:

[(21, 2, 10.0),
(21, 104, 20.0),
(22, 1, 371.0),
(22, 104, 742.0),
(23, 1, 114.0),
(23, 104, 228.0),
(25, 1, 2.0),
(25, 104, 2.0)]

每个数字的上下文按顺序是 id、sku_id 和数量。目标是遍历具有相同 ID 的每批元组并执行以下操作:

  • 检查 sku_id 为 104 的任何条目在同一 quote_id 中是否有另一个条目

  • 其他条目的数量必须是前一行的一半。

在上面的示例中,id 为 25 的行将匹配,因为 sku_id 为 1 的行的数量不是 sku_id 104 的行的一半。这应该附加到最终集。

怎样才能做到这一点?


以用来collections.defaultdict制作订单字典:

all_orders = defaultdict(dict)
for i, sku, qty in data:
    all_orders[i][sku] = qty

all_orders就是现在:

{
    21: {2: 10.0, 104: 20.0},
    22: {1: 371.0, 104: 742.0},
    23: {1: 114.0, 104: 228.0},
    25: {1: 2.0, 104: 2.0}
}

然后循环查看它们是否符合标准

for i, orders in all_orders.items():
    if 104 not in orders:
        continue
    if len(orders) == 1:
        print("Needs to be more than one order if sku is 104")
        continue
    half_104_qty = orders[104] / 2
    for qty in orders.values():
        if qty < half_104_qty:
            continue
    else:
        print("There must be another order half the quantity of the order with sku 104")


文章来源地址https://www.toymoban.com/diary/python/280.html

到此这篇关于Python 在迭代 for 循环时检查其他行的文章就介绍到这了,更多相关内容可以在右上角搜索或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

原文地址:https://www.toymoban.com/diary/python/280.html

如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用
上一篇 2023年08月19日 16:46
下一篇 2023年08月19日 16:46

相关文章

  • Python——迭代器(可迭代、可迭代对象、迭代器、遍历本质、iter函数、next函数、__iter__方法、__next__方法、自定义可迭代对象与自定义迭代器、for循环本质)

    迭代(iter) 我们经常听说过\\\"版本迭代\\\"这个词,意思是在原来版本的基础上,再提升一个版本的过程。那么我们仅仅看看\\\"迭代\\\"这个词,会发现迭代就是一个根据原来的状态决定本次状态的过程 迭代应用于Python中,迭代具体是指根据原来的数据输出(并不一定是要打印,也可

    2024年02月04日
    浏览(55)
  • matlab中的foreach、for in 循环、迭代器

    I 是个行向量,对于行向量,可以像上面的语法那样在 for 循环中使用,遍历 I 中的每一个元素。 如果 I 是列向量,就不行了。 可以看到 a 直接被赋值成整个列向量。 可见,for 循环中被用来迭代的矩阵会被看成只有一行,里面的元素是一个个列向量,for 循环一次取出里面的

    2024年02月11日
    浏览(49)
  • ES6 - Iterator迭代器和for...of 循环

    JavaScript 原有的表示“集合”的数据结构,主要是数组( Array )和对象( Object ),ES6 又添加了 Map 和 Set 。用户还可以组合使用它们,定义自己的数据结构,比如数组的成员是 Map , Map 的成员是对象。这样就需要一种统一的接口机制,来处理所有不同的数据结构。 遍历器(

    2024年02月14日
    浏览(29)
  • 在Python中如何使用循环进行迭代?

    目录 1. for循环 基本语法 示例 2. while循环 基本语法 示例 3. 循环控制语句 示例 4. 高级循环技巧 列表推导式 生成器表达式 5. 选择循环类型 总结   在Python中,循环是一种基本的编程结构,用于重复执行一段代码多次。Python主要提供了两种类型的循环: for 循环和 while 循环。接

    2024年01月23日
    浏览(42)
  • chatgpt赋能python:Python迭代循环详解:从基础到高级

    在Python中,迭代循环是一种非常重要的编程概念。它能够让我们在程序运行过程中多次访问一个数据集或序列,并且以各种方式对其进行操作。在本文中,我们将深入探讨Python中的迭代循环,并介绍从基础到高级的所有知识点。 在编程中,迭代循环是一种指令序列,可以重复

    2024年02月09日
    浏览(46)
  • Python循环中删除元素技巧:避免迭代错误的新列表方法和倒序遍历

      在Python中,如果你在循环过程中边遍历边删除列表元素,可能会导致一些意外的结果,因为在循环中直接修改正在迭代的列表可能会导致迭代错误或不一致的结果。这是因为在修改列表的同时,迭代器可能会失效。 为了安全地遍历列表并删除元素,可以考虑使用新的列表来

    2024年01月17日
    浏览(53)
  • Python循环语句(while循环、for循环)

    Python循环语句主要有while循环和for循环,Python 循环语句的控制结构图如下所示: Python中的while语句形式一般是: while 判断语句(condition): 执行语句(statements) while循环的执行图如下: 在Python需要注意冒号的格式和缩进,比如你在Python中使用冒号只能使用英文格式的双引号\\\"

    2024年02月06日
    浏览(67)
  • 【python基础】循环语句-for循环

    for循环可以遍历任何可迭代对象,如一个列表或者一个字符串。这里可迭代对象的概念我们后期介绍,先知道这个名词就好了。 其语法格式之一: 比如我们遍历学员名单,编写程序如下所示: for循环如果放在生产生活中的话,也类似于循环处理,但较while循环有区别,其区

    2024年02月08日
    浏览(41)
  • 【Python入门】Python循环语句(for循环的嵌套应用)

    前言 📕作者简介: 热爱跑步的恒川 ,致力于C/C++、Java、Python等多编程语言,热爱跑步,喜爱音乐的一位博主。 📗本文收录于Python零基础入门系列,本专栏主要内容为Python基础语法、判断、循环语句、函数、函数进阶、数据容器、文件操作、异常模块与包、数据可视化等,

    2024年02月10日
    浏览(41)
  • [Python入门]Python中的循环语句(for循环语句)

    一、for 循环简介 循环就是重复做某件事,for循环是python提供第二种循环机制(第一种是while循环),理论上for循环能做的事情,while循环都可以做。 for 的语句格式如下: for  变量   in   循环序列:         【循环体】 注:通过 for 循环依次将 循环序列 中的数据取出赋

    2024年04月11日
    浏览(104)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包