python - Python 将字符串列表的各个部分连接在一起
问题描述
我在 python 中有一个字符列表,我想在保持列表的同时连接其中的一些。
我设法检测到哪些是字母 AZ\az,我只想将字母连接成整个单词。
例子:
# List: ['H', 'E', 'L', 'L', 'O', ' ', '=', ' ', 'H', 'E', 'Y']
# Wanted Result: ['HELLO', ' ', '=', ' ', 'HEY']
我希望能够连接列表中的字母而不是其他符号,同时仍然保持我在示例中显示的列表。
感谢所有帮助:)
编辑:
我失败的尝试:(请注意,当我在这里复制它时,它有点搞乱了标签顺序,但总的来说这是我尝试过的代码)
streak = False
marks = []
for i in range(len(lexes) - 1):
if lexes[i] == "LETTER" and lexes[i + 1] == "LETTER" and not streak:
marks.append(i)
streak = True
elif lexes[i] == "LETTER" and lexes[i + 1] != "LETTER" and streak:
marks.append(i)
streak = False
if len(marks) % 2 == 1:
marks.append(len(lexes) - 1)
for i in range(len(marks)):
newString = ""
if i % 2 == 0:
newString = "".join(words[marks[i]: marks[i + 1] + 1])
for j in range(len(newString)):
print(marks[i], ">>>", lexes[i])
lexes.pop(marks[i])
words.pop(marks[i])
words.insert(marks[i], newString)
lexes.insert(marks[i], "STRING")
marks = np.subtract(marks, marks[i])
# words.insert(marks[i], newString)
结果:从['p', 'r', 'i', 'n', 't', '(', "'", 'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', "'", ')']
到:["print('Heel", 'l', '', 'd', "'", ')']
解决方案
可以尝试的东西:
def join_letters(seq):
'''
>>> join_letters(['H', 'E', 'L', 'L', 'O', ' ', '=', ' ', 'H', 'E', 'Y'])
['HELLO', ' ', '=', ' ', 'HEY']
'''
ret = []
for c in seq:
if ret and ret[-1].isalpha() and c.isalpha():
ret[-1] = ret[-1] + c
else:
ret.append(c)
return ret
if __name__ == "__main__":
import doctest
doctest.testmod(verbose=True)
print(
join_letters([
'p', 'r', 'i', 'n', 't', '(', "'", 'H', 'e', 'l', 'l', 'o', ' ',
'W', 'o', 'r', 'l', 'd', "'", ')'
]))
推荐阅读
- sql - 从规范化数据库中选择时重复行
- r - 在 optim() 中实现要优化的参数的标准
- python - OptionMenu add_command 需要直接命令吗?
- reactjs - React highcharts无法从数据标签onclick调用函数
- typescript - 调用 createHttpLink 时获取的类型不匹配
- python - 将 subprocess.run 输出重定向到文件
- api - 问:如何从 YouTube API 获取 YouTube 视频缩略图?
- angular - 如何在 Angular 表单组中嵌套 ControlValueAccessor 组件
- python-3.x - 使用 Pandas 链接嵌套的 json 数据
- sympy - 如何在 sympy 中 sympify ODE 的初始条件?