gpt4 book ai didi

python - 拆分列表并打印所需的输出

转载 作者:太空宇宙 更新时间:2023-11-04 10:24:03 26 4
gpt4 key购买 nike

import re

foo='''"a","b","c","aaa":"sdlfjlasjdfljas"'''

list=re.split('\:,\';\"',foo)
i = 0
for word in list:
newWord = word
newWord.split(':')

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

我目前能够将字符串拆分一次,从而将字符串 "aaa":"alsjflajlsdjf" 全部放在一个索引中。我希望能够用冒号将其拆分,并在 if 语句中使用 word.find 查找 aaa 以获取下一个字符串并将其打印出来。所以它会打印出乱码。

我已经成功地使用 for 循环找到了 aaa 部分,但是我无法打印出这些乱码。提前感谢您的帮助。

最佳答案

您可以根据非单词字符 (\W) 简单地拆分您的字符串:

>>> foo='''"a","b","c","aaa":"sdlfjlasjdfljas"'''
>>>
>>> re.split(r'\W',foo)
['', 'a', '', '', 'b', '', '', 'c', '', '', 'aaa', '', '', 'sdlfjlasjdfljas', '']

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

>>> l=re.findall(r'\w+',foo)
['a', 'b', 'c', 'aaa', 'sdlfjlasjdfljas']

您可以在 next 函数中使用生成器表达式获取长度大于 1 的第一个单词:

>>> next(w for w in l if len(w)>1)
'aaa'

或者使用列表理解来获取所有这些:

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

注意:如果您想使用正则表达式拆分包含某些字符的字符串,您可以使用以下方法:

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

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

关于python - 拆分列表并打印所需的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30544327/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com