繁体   English   中英

我想创建一个列表的元素,其中每个元素都来自一个满意的嵌套 for if 循环语句

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM