首页 > 解决方案 > 给定python中的列表,为每个条目添加一个数字

问题描述

更新#3:记录答案

在这里使用了以下代码:

l = ['idXchgTradeID', 'quantity', 'price', 'commission', 'commasset', 'xchgTradeID', 'status']
   
output = '(' + ",".join([f"{v} =:{i+1}" for i, v in enumerate( l )]).upper() + ')'

print(output) 

它奏效了。输出如下:

(IDXCHGTRADEID =:1,QUANTITY =:2,PRICE =:3,COMMISSION =:4,COMMASSET =:5,XCHGTRADEID =:6,STATUS =:7)

原始条目(进一步说明)

我有以下内容:

   # PROCESS THE "SET" CLAUSE  of the UPDATE
        sql_vals  = []; sql_cols = []; sql_inputs = [];

        # split dictionary into keys and values
        sql_cols, sql_inputs = zip(*set_data['set'].items())

        # did this part just to look for an answer
        for count, row in enumerate(sql_cols, start=1):
                 sql_vals.append( count )


        print(  sql_cols )
        print(  sql_inputs )

        res = { sql_cols[i]: sql_vals[i] for i in range(len(sql_cols)) }
        print( res)

        exit()

我得到的答案是:

('idXchgTradeID', 'quantity', 'price', 'commission', 'commasset', 'xchgTradeID', 'status')
('binancexcgid', 0.0018, 28.0, 0.0021, 'BTC', '483494384', 'FILLED')

这类似于我正在寻求的决赛:

{'idXchgTradeID': 1, 'quantity': 2, 'price': 3, 'commission': 4, 'commasset': 5, 'xchgTradeID': 6, 'status': 7}

我正在寻找类似的东西:

{'idXchgTradeID' = :1, 'quantity' = :2, 'price' = :3, 'commission' = :4, 'commasset' =:5, 'xchgTradeID' =:6, 'status' =:7}

它应该用作 Oracle 输入的一部分(如下例所示)

cur = con.cursor()
statement = 'update cx_people set age = :1 where id = :2'
cur.execute(statement, (31, 1))
con.commit()

标签: python

解决方案


在我看来,您想要类似enumerate功能的东西。这提供了列表中每个项目的列表及其索引

l = ['idXchgTradeID', 'quantity', 'price', 'commission', 'commasset', 'xchgTradeID', 'status']

for index,s in enumerate(l):
    print(s,index+1)

输出

idXchgTradeID 1
quantity 2
price 3
commission 4
commasset 5
xchgTradeID 6
status 7

如果数字不一定按顺序排列,那么您似乎正在寻找一个Dictionary. 此数据结构从键映射到数据点。

d = {
'idXchgTradeID':1, 
'quantity':2, 
'price':3, 
'commission':4, 
'commasset':5, 
'xchgTradeID':6, 
'status':7
}

for key, value in d.items():
    print(key, value)

输出

idXchgTradeID 1
quantity 2
price 3
commission 4
commasset 5
xchgTradeID 6
status 7

推荐阅读