python字符串到元素,去掉撇号



我有一个函数,它填充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

作为一个旁注,试着给变量起有意义的名字。它使读取代码变得容易得多

最新更新