[英]I want to create elements of a list where each element comes from a satisfied nested for if loop statement
str1 ="John000Doe000123"
list1 = []
for i in str1:
if i == "0":
continue
list1.append(i)
print(list1)
OUTPUT: ['J', 'o', 'h', 'n', 'D', 'o', 'e', '1', '2', '3']
但我想要的 output 是:
OUTPUT: ['John', 'Doe', '123']
您可以在字符“0”处拆分字符串并从那里仅查找有效条目:
str1 ="John000Doe000123"
print([name for name in str1.split('0') if name])
# ['John', 'Doe', '123']
使用循环的简单解决方案之一是:
str1 ="John000Doe000123"
list1 = []
str2 = ""
for i in str1:
if i == "0":
if str2!="":
list1.append(str2)
str2 = ""
else:
str2 += i
if str2!= "":
list1.append(str2)
print(list1)
只是为了涵盖所有拆分选项,您还可以使用正则表达式来拆分可变长度的"0"
序列:
>>> import re
>>> re.split(r"0+", str1)
['John', 'Doe', '123']
(在这种情况下,没有必要使用原始字符串,但这是正则表达式的一个好习惯)
快速简便,您需要s.split('000')
。
对于可变数量的
0
,请使用其他答案中提到的正则表达式解决方案。
>>> str1 ="John000Doe000123"
>>> str1.split('000')
['John', 'Doe', '123']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.