如何使用枚举和拆分从列表中提取一组项?

时间:2015-12-17 09:06:39

标签: python file record enumerate

f=open('insert.dat','w+')
while True:
   name=raw_input("ENter name:")
   age=input("Enter age")
   gen=raw_input("gender")
   f.write(name+','+str(age)+','+gen+'')

   ch=raw_input("continue")
   if(ch=='n'):
      break
f=open('insert.dat','r+')
x=f.readline()
x=x.split(',')
for index,line in enumerate(x):
        print line,index
f.seek(0,0)
f.close()

在这个程序中,我想输入:

name:lol
age:3
gender:F
name:koi
age:4
gender:F

所以x.split应该是

['lol',3,'F','koi',4,'F']

现在我想把第一个细节作为一个单独的列表,例如:

 ['lol',3,'F'].

但是当我使用上述格式时,每个单词在与split一起使用时将作为列表出现。如何使用枚举和拆分来实现这一点。三江源!

1 个答案:

答案 0 :(得分:0)

使用您使用的相同逻辑。 你做错的事情是将下一个细节添加到以前数据的末尾。

您可以执行以下操作来避免它:

f=open('insert.dat','w+')
individual = []
while True:
   name=raw_input("ENter name:")
   age=input("Enter age")
   gen=raw_input("gender")
   f.write(','+name+','+str(age)+','+gen+'')
   individual.append([name,age,gen])
   ch=raw_input("continue")
   if(ch=='n'):
      break
f=open('insert.dat','r+')
x=f.readline()
x=x.replace(',', '', 1)
x=x.split(',')
for index,line in enumerate(x):
    print line,index
f.seek(0,0)
f.close()
for ind in individual:
    print ind

我在输入的开头添加了逗号','。您需要做的就是在拆分字符串之前替换第一个逗号。