如何为列表中的每个值分配变量

时间:2012-12-07 17:17:16

标签: python list dictionary python-3.x

我想分配一个变量,但是相同的变量只增加一个列表中的每个值,例如my_list=[[aa],[ab],[ba],[bb],[bc],[cb],[cc],[cd]],我希望d成为变量并拥有d+=1继续查看列表,例如输出看起来或多或少,value[0]=d0value[1]=d1value[2]=d2value[3]=d3value[4]=d4,{{1} },value[5]=d5value[6]=d6

value[7]=d7

2 个答案:

答案 0 :(得分:1)

也许您正在寻找列表理解?

value = [d[0] for d in my_list]

列表推导使您可以处理iterable的每个元素以生成新列表。上面的示例获取嵌套列表的第一个元素,将每个元素添加到新列表中。您的输入列表将转换为:

[aa, ab, ba, bb, bc, cb, cc, cd]

答案 1 :(得分:1)

我想到的一种方式:

def my_list(n):
   my_list, my_num, my_var = [], 0, '' #multiple assignment of variables
   for my_num in range(n + 1): #second argument is exclusive, this implies (0, n + 1)
      my_var = 'd' + str(my_num)
      my_list.append(my_var)
   return my_list

或者,您可以使用词典(相同的想法,但有点不同):

def my_dict(n):
   my_dict, my_num, my_var = {}, 0, ''
   for my_num in range(n + 1):
      my_var = 'd' + str(my_num)
      my_dict[my_num] = my_var
   return my_dict

它会导致每个条目的密钥为my_num,值为my_var。你可以用任何东西替换'd',只要它是一个字符串。如果它没有格式化为字符串,并且my_num是整数或浮点数,它会将它们一起添加(3 + 7将导致10,而不是37 }),不连接它们。