我有一个函数,它填充DatFrame。在第一个例子中,我有固定数量的元素x[0]。。。x[5]。
def chyt(ftch):
vl=[]
for x in ftch:
val= [x[0], x[1], x[2], x[3], x[4], x[5]]
vl.append(val)
return vl
它工作
由于x是ftch=cursor.fetchall((的结果,并且我有许多不同的选择(PYODBC(和元素数量的变化,所以我需要一个公式,允许在函数中添加具有源列表长度的参数。
类似的东西:
def chyt(ftch, lng):
vl=[]
for x in ftch:
val= [f"x[{b}]" for b in range(lng)]
vl.append(val)
return vl
但是
val= [f"x[{b}]" for b in range(lng)]
produces *['x[0]', 'x[1]', 'x[2]']*
不需要
[x[0], x[1], x[2]]
结果它不起作用安比迪能帮我吗?
天气不错,
1月
附言:很抱歉嵌套,我是第一次在这里发邮件。
第二个问题是f-string的使用。如果您希望结果是一个列表,而不是cursor.fetchall()
返回的元组,您可以只执行vl.append(list(x))
请参阅下面的逻辑以获得简单的演示:
t = (2,3,545,6) # tuple
l = []
l.append(list(t))
l.append(list(t)) # append twice to show it's a list of lists
print(l)
输出
[[2, 3, 545, 6], [2, 3, 545, 6]]
要将其应用于您的逻辑,请参阅下面的代码:
def chyt(ftch):
result = []
for row in ftch:
result.append(list(row))
return result
作为一个旁注,试着给变量起有意义的名字。它使读取代码变得容易得多