【问题标题】:How do i iterate through a list of floats and assign them into variables? [duplicate]我如何遍历浮点数列表并将它们分配给变量? [复制]
【发布时间】:2018-06-28 14:15:18
【问题描述】:

我有一个浮动列表:

list_of_numbers = [6.983508046396359, 3.1427777550591887, -24.42539243473745]

我希望将浮点数列表分配给单个变量

w1 = 6.983508046396359
w2 = 3.1427777550591887
w3 = -24.42539243473745

如何将它们分配给所需的变量?

【问题讨论】:

  • 为什么要将它们放在变量中?变量计数是在编写代码时预定义的。列表或其他数据结构可以根据需要扩展。
  • 你几乎肯定不想这样做。你想要一本字典。让名称在命名空间中浮动是不切实际的。
  • 看看 Python 解包功能
  • 真的只是想取回这个值...不是为了任何其他目的
  • @user8795870,如果下面的答案有帮助,请考虑accepting它(左侧的绿色勾号)。

标签: python python-3.x list


【解决方案1】:

使用sequence unpacking:

list_of_numbers = [6.983508046396359, 3.1427777550591887, -24.42539243473745]
w1, w2, w3 = list_of_numbers

如果您有可变数量的变量,请考虑使用字典:

w = dict(enumerate(list_of_numbers, 1))

然后通过w[1]访问例如第一个浮点数。

【讨论】:

  • 领先我 11 秒...
  • 感谢您的回答,这正是我所需要的
【解决方案2】:

如果您知道值的数量总是相同的,那么解包是一个不错的选择:

w1, w2, w3 = list_of_numbers

另一方面,如果您想对任意长度的数字列表执行此操作,那么我建议您采用错误的方法。如果您必须命名它们,请使用@ukemi 建议的字典。

【讨论】:

    【解决方案3】:

    如果已知变量的个数和名称,解包就足够了:

    w1, w2, w3 = list_of_numbers
    

    如果您传递的列表长于变量的数量,最后一个将收到一个序列,其中包含该字段中所有剩余元素的未展开列表,如果列表太短,您将收到异常。

    如果事先不知道变量的数量和名称,那么您不想这样做。这当然是可能的,因为 Python 如果足够动态,但在直接访问列表要简单得多的情况下很难构建和使用。

    【讨论】:

      【解决方案4】:

      创建字典:

      list_of_numbers = [6.983508046396359, 3.1427777550591887, -24.42539243473745]
      d = {"w" + str(i+1): j for i,j in enumerate(list_of_numbers)}
      

      可以这样访问:

      d["w1"]
      >>> 6.983508046396359
      

      【讨论】:

        【解决方案5】:

        如果你有一个小清单

        w1 = list_of_numbers[0]
        w2 = list_of_numbers[1]
        w3 = list_of_numbers[2]
        

        【讨论】:

        • 如果他们没有“小”列表呢?
        • 对于一组预定义的变量,我认为可以。此外,它始终取决于您实际想要实现的目标
        • 对于一组预定义的变量,应该使用解包:w1, w2, w3 = list_of_numbers
        猜你喜欢
        • 2023-03-19
        • 1970-01-01
        • 1970-01-01
        • 2018-07-11
        • 2014-04-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多