В цикле For с использованием двух элементов в Python - PullRequest
1 голос
/ 22 апреля 2011

В списке Python у меня есть два элемента на элемент, 1-й в строке, второй в плавающем

L= [('A', Decimal('52.00')), ('B', Decimal('87.80')), ('G', Decimal('32.50'))]

Я хочу использовать for loop оба элемента в элементе

NewL= []
for row in L:

    ### do something with str
    InSql= "SELECT  " % str
    f= csr.execute(InSql)
    ns = list(f)  

    ###do something with float
    InSql= "SELECT  " % float
    f= csr.execute(InSql)
    nf = list(f) 

    NewL.append(str, float,ns, nf) 

Ответы [ 4 ]

4 голосов
/ 22 апреля 2011

Измените ваш for цикл на что-то вроде этого:

for str_data, float_data in L:
    # str_data is the string, float_data is the Decimal object
2 голосов
/ 22 апреля 2011

Распаковка кортежей работает с переменными цикла:

L= [('A', Decimal('52.00')), ('B', Decimal('87.80')), ('G', Decimal('32.50'))]
for s, n in L:
    print "string %s" % s
    print "number %s" % n

Выходы:

string A
number 52.00
string B
number 87.80
string G
number 32.50
2 голосов
/ 22 апреля 2011

Читая ваш вопрос, я думаю, что вы хотите это:

L= [('A', Decimal('52.00')), ('B', Decimal('87.80')), ('G', Decimal('32.50'))]

for my_str, my_float in L:
    print "this is my string:", my_str
    print "this is my fload:", my_float
2 голосов
/ 22 апреля 2011

Два способа:

Сначала вы можете получить доступ к членам строки:

#For string:
row[0]
#For the number:
row[1]

Или вы указываете свой цикл следующим образом:

for (my_string, my_number) in l:
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...