使用append从另一个列表生成简单列表

时间:2018-04-26 07:27:07

标签: python pymysql

从这样的列表( original_list ):

[[], (['2313240'], 51.0), (['2313301'], 55.0), (['2313467'], 51.0)]

我需要创建另一个仅包含[0]元素的列表( result_list )(例如 2313240 ),因此我尝试使用 2313240 来提取它:

for row in range(1, len(original_list)):
    result_list.append(original_list[row][0][0])

但它的结果与此相似:

['2313240', '2313301', '2313467']

当我真的想要实现这样的事情时(没有括号的元素):

[2313240, 2313301, 2313467]

因此,我可以将其用作查询的参数:

   cursor.execute(sql,[result_list])

现在它记录以下错误:

  

pymysql.err.InternalError:(1241,'操作数应包含1   柱(一个或多个)&#39)

我不知道如何解决这个问题,因为我是Python中的乞丐。

2 个答案:

答案 0 :(得分:2)

在将值附加到数组之前,只需转换为int

result_list.append(int(original_list[row][0][0]))

答案 1 :(得分:0)

在我的评论中,更好的方法是使用列表理解:

L1 = [[], (['2313240'], 51.0), (['2313301'], 55.0), (['2313467'], 51.0)]

In[3]:[int(elt[0][0]) for elt in L1 if len(elt) == 2]
Out[3]: [2313240, 2313301, 2313467]