【问题标题】:Python - Turning a string into a listPython - 将字符串转换为列表
【发布时间】:2023-03-16 07:35:01
【问题描述】:

我正在尝试将这个字符串变成一个列表:

f = open( "animals.txt", "r")
g = f.read()
g1 = g.split(",")
print g1 # list of words

我明白了:

['\x93SHEEP\x94', '\x94TIGER\x94', '\x94LION\x94', '\x94DEER\x94',
'\x94PIG\x94', '\x94DOG\x94', '\x94CAT\x94', '\x94SHARK\x94',
'\x94RAT\x94', '\x94EEL\x94']

我想要的是:

['SHEEP', 'TIGER', 'LION', 'DEER', 'PIG', 'DOG', 'CAT', 'SHARK', 'RAT', 'EEL']

我该怎么做?

【问题讨论】:

  • 能把animals.txt的内容贴出来吗?也可能是一个 hexdump。

标签: python string list


【解决方案1】:

您可以使用 encode('ascii','ignore') 删除 unicodes ,但请注意,首先您需要为 python 澄清您的字符串是 unicode 您可以使用 decode('unicode_escape') 来做到这一点:

>>> l
['\x93SHEEP\x94', '\x94TIGER\x94', '\x94LION\x94', '\x94DEER\x94', '\x94PIG\x94', '\x94DOG\x94', '\x94CAT\x94', '\x94SHARK\x94', '\x94RAT\x94', '\x94EEL\x94']
>>> [i.decode('unicode_escape').encode('ascii','ignore') for i in l]
['SHEEP', 'TIGER', 'LION', 'DEER', 'PIG', 'DOG', 'CAT', 'SHARK', 'RAT', 'EEL']

【讨论】:

    【解决方案2】:

    尝试将其放在代码的顶部:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    

    【讨论】:

      【解决方案3】:

      尝试转义你的字符串:

      g.decode("unicode-escape")
      

      或:

      for i in range(0,len(g1)):
          g1[i] = g1[i].decode("unicode-escape")
      

      这是假设 g1 是包含字符串的数组,g 是包含整个文件作为字符串的变量。

      我的答案来自:

      Python: Sanitize a string for unicode?

      【讨论】:

        猜你喜欢
        • 2015-04-14
        • 2016-11-09
        • 1970-01-01
        • 2017-11-15
        • 1970-01-01
        • 2014-08-06
        • 1970-01-01
        • 1970-01-01
        • 2020-01-03
        相关资源
        最近更新 更多