【问题标题】:List and file operations in pythonpython中的列表和文件操作
【发布时间】:2016-01-02 00:00:54
【问题描述】:

我有一个这样的文件:(点是一些用于计算平均值的数字。)

Ashe: .....
Azok: .....
Bumba: .....
Thrall: .....

我有列表averages,每行一个条目(第一个是 Ashe 的;第二个;Azok 的...)

averages = [12.4, 44.8880001, 32.4, 97.701]

我用这个代码分割名字:

for line in inp:
    line = line.split(": ")[0:1]

当我尝试附加名称和平均值的每个第一个元素时(第二个和第二个......):

for line in inp:
    line = line.split(": ")[0:1]
    #print(line)
    for d in averages:
        line.append(d)
    print(line)

我有这样的输出:

['Ashe', 12.4, 44.8880001, 32.4, 97.701]
['Azok', 12.4, 44.8880001, 32.4, 97.701]
['Bumba', 12.4, 44.8880001, 32.4, 97.701]
['Thrall', 12.4, 44.8880001, 32.4, 97.701]

但是,预期的输出是:

['Ashe', 12.4]
['Azok', 44.8880001]
['Bumba', 32.4]
['Thrall', 97.701]

我的代码需要进行哪些更改?提前谢谢你。

【问题讨论】:

    标签: python list file


    【解决方案1】:

    您需要同时遍历每一行和每个平均值。最简单的方法是使用zip()

    for line, avg in zip(inp, averages):
        line = line.split(":")[:1]
        line.append(avg)
        print(line)
    
    
    ['Ashe', 12.4]
    ['Azok', 44.8880001]
    ['Bumba', 32.4]
    ['Thrall', 97.701]
    

    例如:

    for value1, value2 in zip('abc', 'xyz'):
        print(value1, value2)
    
    a x
    b y
    c z
    

    这里的字符串abcxyz 被压缩在一起,因此每次只使用一个元素。

    此外,还会发生元组拆包。循环通过压缩字符串实际上给你元组:

    for x in zip('abc', 'xyz'):
        print(x)
    
    ('a', 'x')
    ('b', 'y')
    ('c', 'z')
    

    但在第一次迭代中,ax 被分配了 value1value2

    >>> value1, value2 = ('a', 'x')
    >>> value1
    'a'
    >>> value2
    'x'
    

    第二个:

    >>> value1, value2 = ('b', 'y')
    >>> value1
    'b'
    >>> value2
    'y'
    

    【讨论】:

      【解决方案2】:

      您应该按照它们在列表中的排列顺序将每个名称映射到averages 中的每个值:

      假设名字的总数等于平均列表的长度

      for index, line in enumerate(inp):
          line = line.split(": ")[0:1]
          line.append(averages[index])
          print(line)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-04-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-30
        • 1970-01-01
        • 2021-02-27
        • 2013-05-09
        相关资源
        最近更新 更多