链表的python操作
我正在做以下任务。 迭代列表的列表。 将每个内部列表转换为一个对象,并将其添加到批中,以便插入cassandra。跟踪批次中的项目不超过150项链表的python操作,python,python-3.x,Python,Python 3.x,我正在做以下任务。 迭代列表的列表。 将每个内部列表转换为一个对象,并将其添加到批中,以便插入cassandra。跟踪批次中的项目不超过150项 s=session.prepare(“插入{}(a,b,c)值(?,?)”。格式(表)) batch=BatchStatement(一致性\级别=一致性级别.QUORUM) 计数=0 对于列表中的lst: 对于lst中的i: 如果计数=150: magic=magic(i[0],i[1],content\u id) 批处理添加(s,(magic.a,m
s=session.prepare(“插入{}(a,b,c)值(?,?)”。格式(表))
batch=BatchStatement(一致性\级别=一致性级别.QUORUM)
计数=0
对于列表中的lst:
对于lst中的i:
如果计数=150:
magic=magic(i[0],i[1],content\u id)
批处理添加(s,(magic.a,magic.b,magic.c))
session.execute(批处理)
batch=BatchStatement(一致性\级别=一致性级别.QUORUM)
计数=0
其他:
对于lst中的i:
magic=magic(i[0],i[1],content\u id)
批处理添加(s,(magic.a,magic.b,magic.c))
计数+=1
session.execute(批处理)
外部列表具有未指定数量的项,但内部列表始终具有两个项
这段代码非常冗长。有没有更符合python的方法来实现这一点。我将公共代码移出
if
块:
s=session.prepare(“插入{}(a,b,c)值(?,?)”。格式(表))
batch=BatchStatement(一致性\级别=一致性级别.QUORUM)
计数=0
对于列表中的lst:
对于lst中的i:
magic=magic(i[0],i[1],content\u id)
批处理添加(s,(magic.a,magic.b,magic.c))
计数+=1
如果计数=150:
session.execute(批处理)
batch=BatchStatement(一致性\级别=一致性级别.QUORUM)
计数=0
session.execute(批处理)
我还为循环删除了看起来不必要的第二个。在最后一次调用会话之前,您可能需要添加一个检查计数==0
。执行
警告
切勿将list
用作变量名。是一个内置类。可能是解决此问题的更好地方。不过,如果你想在那里发帖,先复习一下。有时候冗长是好的。您可以使用嵌套的列表理解来编写此内容,但这将很难阅读。请提供一个(即,示例数据也是自包含的w.r.t.)。代码的缩进也是错误的。如果lst
确实是一个列表,我不确定else
子句中的代码是否真的按照您的想法执行(因为您再次迭代了整个列表)。最后,您似乎有一个列表本身包含2元组(这是正确的吗?)。一些示例数据确实有助于更好地理解这一点。