如何将字符串中的“ \ t”拆分为两个单独的字符“ \”和“ t”?(如何分割转义序列?)

atefsawaed

我正在尝试将python中的字符串拆分为字符列表。我知道在python中有很多方法可以做到这一点,但是在某些情况下,这些方法并不能给我期望的结果。

当我有特殊字符(例如'\ t')明确地写在字符串中时,就会发生问题(我并不是说真正的制表符)。

例:

string = "    Hello \t World."

我需要的输出是:

list_of_chars = [' ', ' ', ' ', ' ', 'H', 'e', 'l', 'l', 'o', ' ', '\', 't', ' ', 'W', 'o', 'r', 'l', 'd', '.']

但是,当我使用此问题中给出的方法时,我得到一个包含'/ t'作为整个字符串的列表-不分开。

例:

> list(string)
> ['H', 'e', 'l', 'l', 'o', 'w', ' ', '\t', ' ', 'W', 'o', 'r', 'l', 'd', '.']

我想知道为什么会这样以及如何得到我想要的东西。

帕特里克·阿特纳

您可以相应地替换您的字符串:

import itertools
txt = "    Hello \t World."

specials = { 
    '\a' : '\\a', #     ASCII Bell (BEL)
    '\b' : '\\b', #     ASCII Backspace (BS)
    '\f' : '\\f', #     ASCII Formfeed (FF)
    '\n' : '\\n', #     ASCII Linefeed (LF)
    '\r' : '\\r', #     ASCII Carriage Return (CR)
    '\t' : '\\t', #     ASCII Horizontal Tab (TAB)
    '\v' : '\\v'  #     ASCII Vertical Tab (VT)
}

# edited out: # txt2 = "".join([x if x not in specials else specials[x] for x in txt])
txt2 = itertools.chain(* [(list(specials[x]) if x in specials else [x]) for x in txt])

print(list(txt2))

输出:

[' ', ' ', ' ', ' ', 'H', 'e', 'l', 'l', 'o', ' ', '\\', 't', ' ', 'W', 
 'o', 'r', 'l', 'd', '.'] 

列表理解看起来更“积极”,使用list(itertools.chain(*[...]))代替list("".join([...]))应该更高效。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将由连字符分隔的复合词拆分为两个单独的单词

如何将路径拆分为单独的字符串?

如何将单个字符串拆分为两个不同的列sql

如何将字符串仅拆分为正整数和负整数?

如何将逗号和分号分隔的字符串拆分为JSON对象

如何将python中的两个字典与列表,字符串和整数进行比较?

如何将字符串拆分为单词和空格?

如何将列表中的字符串用作R中的中介和lm中的变量?

如何在C#中将字符串拆分为两个单独的变量

如何将字符串中随机重复的字符“”替换为交替的字符“”和“”(Python)?

如何使用正则表达式将字符串“ {{key.value}}”拆分为两个字符串“ key”和“ value”?

如何将一行拆分为两个字符串,然后将第二个字符串复制到SQL的单独列中?

如何将Matlab字符串分为两个后缀已知的字符串?

如何将位图和字符串插入HashMap

如何将字符串拆分为微调框和edittext值?

如何将列表中的整数和字符串元素分成两个不同的列表?

如何将字符串拆分为double和string

如何将字符串拆分为两个单独的字符串

如何使用 tempArray 将字符串拆分为两个双精度值?

如何将字符串和 URL 分隔到列表中的不同列表中

如何将大字符串拆分为两个不同的数组?

如何将 .csv 文件中的日期时间字符串列拆分为单独的日期和时间列?

java中如何将字符串转换为json字符串和对象

如何将变量插入带有多个引号和转义字符的长字符串中?

如何将字符串拆分为数字和字符

如何在bash中剥离和拆分包含转义序列的字符串?

如何将字符串拆分为第一个字符和其余字符?

如何将字符串中的交替数字和字符分隔为字典或列表?

如何将字符串拆分为名字和姓氏