【问题标题】:write multiple lists in each line to txt file将每行中的多个列表写入 txt 文件
【发布时间】:2020-07-15 02:08:04
【问题描述】:

我想用多个输入列表在 txt 文件中写入行。这是我在 txt 文件中写入行的内容:

for line in pg:
for key,value in line.items():
    if key == 'name':
        name.append(value)
    elif key == 'age':
        age.append(value)
    elif key == 'address':
        address.append(value)

with open('sampel.list',mode='w') as f:
                      f.write('name:{n},age:{a},address:{d}\n'.format(n=name,a=age,d=address))

我想要的输出是:

name:paulina,age:19,address:NY
name:smith,age:15,address:AU
 .
 .
 .

但我的输出是

name:[paulina,smith,...],age:[19,15,...],address:[NY,AU,...]

【问题讨论】:

  • 如果您发布更多代码,特别是您如何定义变量,它会有所帮助。看起来姓名,年龄和地址都是列表
  • 您可能希望使用zip() 进行循环,它可以让您同时遍历多个列表。 stackoverflow.com/questions/10080379/…
  • @ewong 我已经把代码放在了我如何提取我的数据上。

标签: python text


【解决方案1】:

给定单独的值列表,您可以使用zip() 将它们组合起来,然后循环遍历每一行的结果:

name = ['Joe', 'Tom', 'Sally']
age = [10, 12, 14]
address = ['1 main st', '2 main st', '3 main st']

with open('sampel.list',mode='w') as f:
    for n, a, d in zip(name, age, address):
        f.write(f'name:{n},age:{a},address:{d}\n')

这将产生如下文件:

name:Joe,age:10,address:1 main st
name:Tom,age:12,address:2 main st
name:Sally,age:14,address:3 main st

【讨论】:

    【解决方案2】:

    您需要遍历您的列表并打印值。

    for line in pg:
    for key,value in line.items():
        if key == 'name':
            name.append(value)
        elif key == 'age':
            age.append(value)
        elif key == 'address':
            address.append(value)
    
    with open('sampel.list',mode='w') as f:
        for i in range(len(name)):
            f.write('name:{n},age:{a},address:{d}\n'.format(n=name[i],a=age[i],d=address[i]))
    

    【讨论】:

      猜你喜欢
      • 2017-06-24
      • 2011-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-29
      相关资源
      最近更新 更多