Python 拆分列表并打印所需输出

Python 拆分列表并打印所需输出,python,list,parsing,text,split,Python,List,Parsing,Text,Split,我目前正试图用逗号、冒号和括号等不同的参数将字符串foo分开。。。等等 我目前能够拆分字符串一次,这将为我提供字符串“aaa”:“alsjflajlsdjf”一个索引。我希望能够通过冒号将其拆分,并在if语句中使用word.find查找aaa,以获取下一个字符串并将其打印出来。所以它会打印出胡言乱语 我已经成功地使用for循环来查找aaa部分,但是我无法打印出乱七八糟的内容。提前谢谢你的帮助 您可以简单地基于非单词字符拆分字符串(\W): 或者,对于拒绝空字符串,您可以使用re.findall查

我目前正试图用逗号、冒号和括号等不同的参数将字符串foo分开。。。等等

我目前能够拆分字符串一次,这将为我提供字符串
“aaa”:“alsjflajlsdjf”
一个索引。我希望能够通过冒号将其拆分,并在if语句中使用
word.find查找
aaa
,以获取下一个字符串并将其打印出来。所以它会打印出胡言乱语


我已经成功地使用for循环来查找
aaa
部分,但是我无法打印出乱七八糟的内容。提前谢谢你的帮助

您可以简单地基于非单词字符拆分字符串(
\W
):

或者,对于拒绝空字符串,您可以使用
re.findall
查找仅包含单词字符的单词(
\w
):

next
函数中,您可以将长度大于1的第一个单词与生成器表达式一起使用:

>>> l=re.findall(r'\w+',foo)
['a', 'b', 'c', 'aaa', 'sdlfjlasjdfljas']
或者使用列表理解来获取所有信息:

>>> next(w for w in l if len(w)>1)
'aaa'
注意:如果要使用正则表达式拆分包含某些字符的字符串,可以使用以下方法:

  • 使用字符类:
    [:,.;]
  • 使用逻辑or:
    ':|,|\。|

但是将pip(“|”)与
re一起使用。拆分可能包含空字符串。在这种情况下,您可以使用字符类。

您可以简单地基于非单词字符拆分字符串(
\W
):

或者,对于拒绝空字符串,您可以使用
re.findall
查找仅包含单词字符的单词(
\w
):

next
函数中,您可以将长度大于1的第一个单词与生成器表达式一起使用:

>>> l=re.findall(r'\w+',foo)
['a', 'b', 'c', 'aaa', 'sdlfjlasjdfljas']
或者使用列表理解来获取所有信息:

>>> next(w for w in l if len(w)>1)
'aaa'
注意:如果要使用正则表达式拆分包含某些字符的字符串,可以使用以下方法:

  • 使用字符类:
    [:,.;]
  • 使用逻辑or:
    ':|,|\。|

但是将pip(“|”)与
re一起使用。split
可能包含空字符串。在这种情况下,可以使用字符类。

您的正则表达式应如下所示:

>>> [w for w in l if len(w)>1]
['aaa', 'sdlfjlasjdfljas']

方括号包括所有要拆分的字符。

正则表达式应如下所示:

>>> [w for w in l if len(w)>1]
['aaa', 'sdlfjlasjdfljas']

方括号包括所有要拆分的字符。

您可以使用
str.translate
用逗号替换要拆分的字符,然后用逗号拆分:

[,;:]
我不明白你为什么要拆分所有单词如果你只想在
aaa
之后找到单词,str.find对你没有多大帮助如果你拆分字符串,你可以在使用find获得
aaa
的索引后从那里拆分得到下一个单词

tbl= str.maketrans({ord(ch):"," for ch in "();:"})
print("\n".join(foo.translate(tbl).split(",")))

"a"
"b"
"c"
"aaa"
"sdlfjlasjdfljas"

您可以使用
str.translate
将要拆分的任何字符替换为逗号,然后再拆分为逗号:

[,;:]
我不明白你为什么要拆分所有单词如果你只想在
aaa
之后找到单词,str.find对你没有多大帮助如果你拆分字符串,你可以在使用find获得
aaa
的索引后从那里拆分得到下一个单词

tbl= str.maketrans({ord(ch):"," for ch in "();:"})
print("\n".join(foo.translate(tbl).split(",")))

"a"
"b"
"c"
"aaa"
"sdlfjlasjdfljas"

代码的问题在于
split()
没有“就地”修改字符串(没有任何修改:字符串在python中是“不可变的”)。您需要将结果保存在一个新变量中,例如
newWord=word.split(“:”)
。然后您可以继续使用code.PS
list
是python中列表类型的名称。不要将它用作变量名,它是合法的,但它会比你想象的更快地咬到你。如果你只想要
aaa
后面的第一个单词,为什么要拆分
.find
也是一个str操作,因此拆分和使用find如何准确地让您找到乱码?如何从sdlfjlasjdfljas获得alsjflajlsdjf?代码的问题是,
split()
不会“就地”修改字符串(没有任何操作:字符串在python中是“不可变的”)。您需要将结果保存在一个新变量中,例如
newWord=word.split(“:”)
。然后您可以继续使用code.PS
list
是python中列表类型的名称。不要将它用作变量名,它是合法的,但它会比你想象的更快地咬到你。如果你只想要
aaa
后面的第一个单词,为什么要拆分
.find
也是一种str操作,因此拆分和使用find如何准确地让您找到胡言乱语?如何从sdlfjlasjdfljas获得alsjflajlsdjf?我很难理解您如何准确地找到aaa零件,然后打印出后面的内容。我试着做你们用w for w…len(w)>1做的事情,但我只是把我的整个列表打印出来,因为我的数据文件中有4个以上的条目。我如何打印出aaa之后的索引,或者我很难理解你到底是如何找到aaa部分的,然后打印出aaa之后的内容。我试着做你们用w for w…len(w)>1做的事情,但我只是把我的整个列表打印出来,因为我的数据文件中有4个以上的条目。我如何打印出aaa之后的索引或其他内容