从列表中提取长度可变数据

时间:2018-10-30 13:20:14

标签: python list

list=[lorenzo,de tomasi,rieti,07-03-1995
maria,severone,cittaducale,04-03-1961
alessio,di febo,atri,07-02-1995
andrea,di francesco,penne,02-10-1995
lorenzo,de tomasi,rieti,07-03-1995
gianluca,de tomasi,dolores,17-10-1964]

我必须创建一个新列表,使用周期将在同一位置出生的所有人都排在第三个位置,出生地的长度是可变的,我该怎么办?

fin=open('collection_name.txt')

str=fin.read()

def remove_duplicate(listik):
    res=[]
    for i in listik:
        if i not in res:
            res.append(i)
    return res

for i in range(len(str)):
    if i==0:
        pos=0
        pippo='a'
        pluto=[]
        pos1=0
        pos2=0
    if str[i]==',': 
        for j in range(i+1,len(str)):
            if str[j]==',':
                pos1=j

                for k in range(j+1,len(str)):
                    if str[k]==',':
                        pos2=k
pippo=str[pos1+1:pos2]  

pluto.append(pippo)

print(pluto)

1 个答案:

答案 0 :(得分:0)

好吧,您可以先 str.split(','),以便将数据放入每个位置都位于某个位置的数组中,然后像下面这样迭代它:

data = str.split(',')
pluto = []
'''This will create a list with numbers 0..len(data)-1 with a step of 3
    so you'll be only iterating over the places. '''
for i in range(3, len(data), 3):
    if data[i] == "de rieti":
       pluto.append(data[i-2])
       pluto.append(data[i-1])
       pluto.append(data[i])
       pluto.append(data[i+1])
print(pluto)

当然,在这里您应该首先检查那些i +/- n是否存在,这可能不能100%解决您的问题,但它应该可以帮助您了解如何进行操作:)