【问题标题】:How would I assign a variable to each value in a list如何为列表中的每个值分配一个变量
【发布时间】:2012-12-07 17:17:15
【问题描述】:

我想分配一个变量,但相同的变量只是为列表中的每个值增加一,例如my_list=[[aa],[ab],[ba],[bb],[bc],[cb],[cc],[cd]],我希望d 成为变量并让d+=1 继续通过列表例如输出看起来或多或少像,value[0]=d0,value[1]=d1,value[2]=d2,value[3]=d3,value[4]=d4,value[5]=d5,value[6]=d6,value[7]=d7。

def my_list():
    my_list=[[aa],[ab],[ba],[bb],[bc],[cb],[cc],[cd]] #list of values
    for d in my_list:
        d+=1 #? i don't know? how could i do this?

【问题讨论】:

  • 我不知道为什么结果如此畸形对不起,我已经为这个项目工作了 25 小时,并且我被困和沮丧并且是一个初学者
  • np - 那些关注python 标签的人非常乐意在格式方面提供帮助 - 感谢@martinj 重新格式化您的帖子(我们只是不喜欢人们的帖子懒得在一个难以理解的意义上提出一个问题,等等......)
  • 我认为你需要睡一觉,因为你的问题目前没有多大意义。
  • 有时,最好描述一下目标。解决方案可能与您的预期不同。

标签: python list dictionary python-3.x


【解决方案1】:

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

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

列表推导式可让您处理可迭代对象的每个元素以生成新列表。上面的示例采用嵌套列表的第一个元素,将每个元素添加到一个新列表中。然后您的输入列表将转换为:

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

【讨论】:

    【解决方案2】:

    我想到的一种方法:

    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),而不是连接它们。

    【讨论】:

    • 这是基于我的暗示,您的意思是您想要一个包含字母、'd' 和递增数字值的列表。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-10
    • 2022-06-11
    • 1970-01-01
    • 2021-06-05
    • 2018-03-05
    • 1970-01-01
    • 2017-02-09
    相关资源
    最近更新 更多