如何分离列表python 2.7的每一行?

时间:2017-04-27 05:28:22

标签: python python-2.7 list

我使用的是python 2.7,我有一个列表,其中包含产品价格和该产品的链接。每个价格和链接都被视为列表中的一个项目。问题是价格假设只在最后,并且列表中的某些项目在开头和结尾都有价格。如果价格在开头,则该商品以' $'开头。其次是价格和' \ n'。当我使用' \ n' .join(list)打印列表时,它将开头的价格(我想要删除)和项目本身分开在单独的行上,但我可以'弄清楚如何删除以' $'开头的行。没有删除整个项目。现在我正在使用这段代码:

myList = map(' '.join,zip(list1, list2))
das = '\n'.join(x3x) 
print das
#prints something like this:
$30                            #<--this line is part of the item in the 
iPhone 4 $30. eBay.com/iphone4 #list but I want to remove it because 
                               #it is repetitive and messes up what i'm
                               #trying to do.

我通常使用的是:List = [v for v in myList if not v.startswith('$')]但是如果它以&#39; $&#39;开头,则会删除整个项目,而不仅仅是&#39; $ 30&#39;在里面。

以下是此列表的示例:

['$34\n'iphone 4 $34 forsale.com/iphone4s, new car $20000 forsale.com/newcar]
#lets just say it is 2 items in the list, the first item has the price before
# and after the product, but the second item doesn't. I want to remove the '$34' 
# from the first item, but dont know how without deleting the entire 1st item.

所以第一项是价格,产品,价格,然后是链接。有时价格将在产品之前,这会弄乱我的代码,所以我想删除碰巧在我的项目开头的每个价格而不删除整个产品。

2 个答案:

答案 0 :(得分:2)

检查列表项是否以$开头,如果是,则拆分列表项并删除第一部分。

lista = ['$34 iphone 4 $34 forsale.com/iphone4s', 'new car $20000 forsale.com/newcar']

for i in range(len(lista)):

    if lista[i].startswith("$"):

        lista[i] = " ".join(lista[i].split(" ")[1:])

print lista  

输出

['iphone 4 $34 forsale.com/iphone4s', 'new car $20000 forsale.com/newcar']

答案 1 :(得分:0)

您可以插入一个小支票而不是立即打印das。像

这样的东西
if das.find(" ") == -1:
    pass # don't print das and go to next line

在这里,我检查了字符串中是否没有空格。