2012-04-12 3 views
0

Как получить доступ к значениям в моем втором списке (val)?python help values ​​values ​​in inested for loop

colors = [('teal','30a8a0'),('pink','b33b96'),('red','de3249'),('green','758f3d'),('purple','532c86'),('darkblue','116da4'),('skyblue','1d9dc5')] 
darkblue=[('first'),('second')] 

for (color,value) in colors: 
    print color #teal, pink, red, etc... 
    for (val) in {color}: 
     print val #first, second, etc... 
+0

Если я правильно поняли, сначала хотите получить цвет из переменных цветов, а затем перебрать список, назначенный переменной с тем же именем, что и указанный цвет? – Akash

+0

Непонятно, что вы хотите сделать, пожалуйста, объясните, каков ваш желаемый результат. – luke14free

+0

Кроме того, я думаю, что вы используете неправильные структуры данных. Вы должны использовать словарь, а не список кортежей – Akash

ответ

3

Как насчет этого?

subcolors = {'darkblue': ['first', 'second'], 
      'teal': ['first-teal', 'second-teal'], 
      'pink': ['first-pink', 'second-pink'], 
      # etc.. 
      } 

for (color,value) in colors: 
    print color #teal, pink, red, etc... 
    for val in subcolors[color]: 
     print val #first-teal, second-teal, first-pink, second-pink, etc... 

Поставив цвета в диктовку, мы сможем получить их более легко и повторить их значения.


Если вы действительно хотите сделать это с переменной darkblue, и вы не хотите использовать Dict, вы можете сделать это, но я бы не рекомендовал его:

darkblue = ['first', 'second'] 
teal = ['first-teal', 'second-teal'] 
pink = ['first-pink', 'second-pink'] 
# etc... 

for (color,value) in colors: 
    print color #teal, pink, red, etc... 
    for val in locals()[color]: 
     print val #first-teal, second-teal, first-pink, second-pink, etc... 
+0

Спасибо dhg, это лучшая структура. Это сработало, но мне пришлось исключить это: для (val) в подцветках [color]: –