从循环创建的嵌套列表中删除括号 Python

Remove parentheses from nested list created from loop Python

请问,您知道如何从此代码中删除括号'(', ')'吗?

values_list = [] 
x = 0
for n in different_values:
   for each  in different_values:
      different_id = list((different_values))
      arg_1 = different_id[x]
      cursor.execute(sqlstmt2,arg_1=arg_1)
      rows = ((cursor.fetchmany(each)))
      index += 1
      x += 1
      print(rows)
      values_list.append(rows)
      break

print((values_list))

输出是:

[[(105, 'David', '05.11.88', 'M', 'xxx', 'United States of America', 'republican', 'k')], [(106, 'Valli', '16.06.89', 'M', 'xxx', 'United States of America', 'republican', 'k')]]

我想为 Google Sheet 的插入函数创建类似参数的嵌套列表,但在循环之外。

wks.insert_rows(row=1, number=1, values=values_list)

好吧,[[(a, b, c)], [(d, e, f)]] 是两个条目的列表,每个条目都是一个条目的列表,这是一个包含三个条目的元组,即 abc — 或 def。所以如果你想 "get rid" 一对括号,你的意思是你想得到里面的东西。这是通过索引列表和元组的唯一元素来完成的:

print(values_list)
[[(105, 'David', '05.11.88', 'M', 'xxx', 'United States of America', 'republican', 'k')],
 [(106, 'Valli', '16.06.89', 'M', 'xxx', 'United States of America', 'republican', 'k')]]
print([ value[0] for value in values_list ])
[(105, 'David', '05.11.88', 'M', 'xxx', 'United States of America', 'republican', 'k'),
 (106, 'Valli', '16.06.89', 'M', 'xxx', 'United States of America', 'republican', 'k')]

结果是元组列表(而不是元组列表的列表),因此删除了一对括号。

如果您想保留括号并移除(圆)括号,您可以将元组转换为列表:

print([ list(value[0]) for value in values_list ])
[[105, 'David', '05.11.88', 'M', 'xxx', 'United States of America', 'republican', 'k'],
 [106, 'Valli', '16.06.89', 'M', 'xxx', 'United States of America', 'republican', 'k']]

但我想最好不要首先创建原始结构:

rows = list(cursor.fetchmany(each)[0])

这当然假设您的 fetchmany() 调用将始终只有 return 恰好一个条目(由元组表示)。使用此代码,您将获得结果列表的一个条目并将其(元组)转换为列表。

我不能说这些前提在你的情况下是否正确。在应用我的代码建议之前,您应该考虑这一点。