【问题标题】:Python - assign lists within nest to variablePython - 将嵌套中的列表分配给变量
【发布时间】:2009-12-19 00:02:28
【问题描述】:

我是 python 新手,希望能得到一些帮助。

如何做到以下几点:

  1. 已将文件中的每一行转换为嵌套列表, 例如[['line 1', 'a'], ['line 2','b']] 如何展平列表,以便每一行都与一个变量相关联。假设每个列表中的第一个成员,即i[:][0],是已知的。

  2. 是否可以将多个列表与一个变量关联,即x = [list1], [list2]可以吗?

  3. 在列表上使用了 for 循环后,那些如何将该列表的各个方面与变量相关联?请参见下面的示例。

例子:

for i in list_1:
    if i[:][0] == 'm':
        i[2] = a
        i[3] = b
        i[4] = c

上面返回NameError, a, b, c, not defined。一般而言,如何定义一个或多个 for 循环中的迭代产生的变量?

希望我是清晰简洁的,因为我很困惑!

更新:

澄清一下:

我有一个嵌套列表,其中嵌套中的每个列表都包含字符串。这些字符串实际上是数字。我希望将字符串转换为整数以执行算术运算。

例子:

[['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9']]

现在,要将每个字符串转换为整数,abs() 是否合适?这应该如何实现?

另外,要对嵌套中每个列表的第三项求和并将总数分配给变量?我应该为此定义一个函数吗?

非常感谢任何有关如何处理此问题的建议!

另外,之前的建议让我意识到是我的想法造成了问题!谢谢!

【问题讨论】:

  • 为 for 循环中的语法道歉 - 当我发布它时它变得有趣!
  • 您可以使用编辑器中的代码按钮来格式化您的代码。只需选择它并点击 1s 和 0s 中的图标。

标签: python variables loops list


【解决方案1】:
# Answer to question 1 - just use the built-in functionality of lists.
#
# There is no need to use variables when lists let you do so much more
#   in a quick and organised fashion.
lines = []
for line in open_file:
   lines.append(line)

由于Li0liQ already answered questions 2 and 3,我只想添加关于问题 3 的建议。您真的不需要通过 i[:] 制作列表的副本,因为您只是在测试列表中的值.

【讨论】:

    【解决方案2】:

    没有。 2:我看不出这怎么可能——你肯定只能给一个变量赋值吗?

    【讨论】:

    • 是的,再想一想,我想我知道!愚蠢,愚蠢,愚蠢的我!谢谢!
    • 不傻,只是高级时刻! ;) 我一直都明白!
    【解决方案3】:
    1. 为什么要关联每个 带有变量的列表中的项目?你 不能告诉列表的数量 事先输入,因此您不 知道变量的确切数量 使用。

    2. 可以使用元组:x = ([list1], [list2])

    3. 你应该写作业,反之亦然:

      for i in list_1:
          if i[:][0] == 'm':
              a = i[2]
              b = i[3]
              c = i[4]
      

    【讨论】:

    • 哦,又是一个高级时刻!计算对我们生物学家来说是残酷的!
    【解决方案4】:

    你想要吗:

    a, b, c = i[2:5]
    

    【讨论】:

      【解决方案5】:

      如果我理解得很好,你有一个列表的列表,它的长度可以是 2 或 1(当变量名未知时)

      您可能希望使用字典来存储行

      更不用说i[:][0] 意味着你想要的不同的东西,它与i[0] 相同(i[:] 将是列表i 的副本)

      list_1 = [['line 1', 'a'], ['line 2','b'], ['line 3']]
      d = {}
      
      for i in list_1:
          if len(i) != 2:
              continue
          key = i[1]
          value = i[0]
          d[key] = value
      

      那么对于a,您将使用d[a]

      如果您最终想将它们转换为变量,可以致电locals().update(d)

      【讨论】:

        猜你喜欢
        • 2021-02-12
        • 1970-01-01
        • 1970-01-01
        • 2018-08-23
        • 2016-09-12
        • 2016-02-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多