Python从列表中删除特定字符串会留下它们吗?

时间:2018-11-23 21:59:13

标签: python

我正在编写一些代码,我想搜索该列表并删除开头的所有1。一旦它达到0,我希望它停止,这就是新列表。每当我总共有13个字符时,它就会满足我的要求-converted = ("1111111011110"),但是当我有完整的16个字符时,converted = ("1111111111011110")会在开头留下额外的两个字符。

这是我的代码:

converted = ("1111111111011110")
finalL = []
i = 0
for x in converted:
    finalL.append(x)

print(finalL)


for x in finalL:
    if finalL[0] == "1":
        finalL.remove("1")


print(finalL)

现在它会打印第一个列表: ['1','1','1','1','1','1','1','1','1','1','0','1',' 1','1','1','0']

但此列表如下:['1','1','0','1','1','1','1','0']

我希望第二张照片打印['0','1','1','1','1','0']

1 个答案:

答案 0 :(得分:1)

如果您只有一次和零,并且只关心从第一个零开始的字符串,那么我将执行以下操作。

string = '1111111110111111110'
first_zero = string.find('0')
new_string = string[first_zero:] #'0111111110'

请注意,这对仅包含一个字符的字符串不起作用,因为find将返回-1,这将是字符串的最后一个字符。因此,您需要确保每次返回-1时,您的字符串实际上都不是什么。

或通过以下示例使用循环:

converted = '1111111110111111110'
finalL = ''

for i,elem in enumerate(converted):
    if elem=='0':
        # if a zero is found, copy the whole string from
        # this position
        finalL = converted[i:]
        break