Python - 将nest中的列表分配给变量

时间:2009-12-19 00:02:28

标签: python variables loops list

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

如何执行以下操作:

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

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

  3. 在列表中使用了for循环,那些如何将该列表的方面与变量相关联?见下面的例子。

  4. 示例:

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

    以上返回NameError,a,b,c,未定义。如何定义由for循环中的迭代或循环中的迭代产生的变量?

    希望我很清楚,简洁,因为我感到困惑!

    更新

    澄清:

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

    示例:

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

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

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

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

    此外,早先的建议让我意识到我的想法是在创造问题!谢谢!

5 个答案:

答案 0 :(得分:2)

# 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 [:]复制列表,因为你只是在测试一个值清单。

答案 1 :(得分:1)

没有。 2:我看不出那是怎么可能的 - 当然你只能为变量分配一个值?

答案 2 :(得分:0)

  1. 为什么要关联每个 带有变量的列表中的项目?您 不能告诉列表的数量 事先没有条目 知道变量的确切数量 使用。

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

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

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

答案 3 :(得分:0)

你想要吗?

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

答案 4 :(得分:0)

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

您可能希望使用dict来存储行

尚未提及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)