Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
链表的python操作_Python_Python 3.x - Fatal编程技术网

链表的python操作

链表的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

我正在做以下任务。 迭代列表的列表。 将每个内部列表转换为一个对象,并将其添加到批中,以便插入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,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元组(这是正确的吗?)。一些示例数据确实有助于更好地理解这一点。