使用附加从另一个列表生成一个简单列表
Generating a simple list from another list using append
来自这样的列表 (original_list):
[[], (['2313240'], 51.0), (['2313301'], 55.0), (['2313467'], 51.0)]
我需要创建另一个列表 (result_list),其中只有 [0] 个元素(例如 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, 'Operand should contain 1
column(s)')
我不知道如何解决这个问题,因为我是 Python 的新手。
在将值附加到数组之前,只需转换为 int
:
result_list.append(int(original_list[row][0][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]
来自这样的列表 (original_list):
[[], (['2313240'], 51.0), (['2313301'], 55.0), (['2313467'], 51.0)]
我需要创建另一个列表 (result_list),其中只有 [0] 个元素(例如 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, 'Operand should contain 1 column(s)')
我不知道如何解决这个问题,因为我是 Python 的新手。
在将值附加到数组之前,只需转换为 int
:
result_list.append(int(original_list[row][0][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]