我正在编写一些代码,我想搜索该列表并删除开头的所有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']
答案 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