【问题标题】:How to convert a list of strings to an array? (NOT using NumPy)如何将字符串列表转换为数组? (不使用 NumPy)
【发布时间】:2021-02-03 02:32:11
【问题描述】:

我正在开发一个带有 python 接口和其他程序的项目。我需要从 excel 文件中导入数据并使用存储在数组中的数据以供进一步使用。 excel文件的数据是纯文本。

到目前为止,我设法将数据转换为字符串列表。现在我正在努力将列表转换为数组,而不是使用 numpy.至于这个项目,我正在开发一个不适用于 numpy 的接口,这就是我必须使用数组模块的原因。

以下是部分相关代码:

from array import array

data_list = []
for i in ws.values:
    data_list.append(i)
print(data_list)

data_array = array('u', data_list))
print(data_array)

第一行代码运行良好。问题出现在我要创建数组的行中。这样做我想使用列表变量 (data_list) 的变量,因为我不必提示所有 50 多个字符串。

data_array = array('u', data_list))

出现以下错误:

TypeError: array item must be unicode character

我找不到通过 Internet 浏览的 Unicode 字符。我该如何解决这个问题?还是有其他方法可以将字符串列表转换为数组(不使用 NumPy)?

我也想知道 'u' 是否是在这里使用的正确类型。

【问题讨论】:

  • 请为data_list 提供minimal reproducible example。该错误告诉您其中有非 unicode 字符,例如数字。
  • @Rahul Bohare:谢谢。我试过你的答案坚果得到了 TypeError: array item must be unicode character。 'u' 实际上是正确的数据类型吗?
  • 请分享ws.values
  • 您确定需要 array吗?列表是python中传统的数据结构。
  • 对于 seaborn ,对于 histplot 方法,对于 hue_order 参数,你需要一个数组。不接受列表和 numpy 数组...

标签: python arrays list typeerror python-unicode


【解决方案1】:

该错误表明列表中存在非 unicode 字符的值 - 这些值可能是数字,也可能是空字符串或长度超过一个字符的字符串。

>>> import array
>>> array.array("u", "Hello World!")  # string of characters – fine
array('u', 'Hello World!')
>>> array.array("u", ["Hello", "World!"])  # list of strings – error!
TypeError: array item must be unicode character
>>> array.array("u", ["1", "2", "3", "4"]) # list of characters – fine
array('u', '1234')
>>> array.array("u", ["1", 2, 3, "4"])  # list of characters/numbers - error!
TypeError: array item must be unicode character

将所有值转换为字符串。根据预期的数据格式,为每个单词创建单独的数组或 str.join 所有单词。

>>> data = ["Hello World!", "Dear", 5]
>>> array.array("u", '\n'.join(str(line) for line in data))
array('u', 'Hello World!\nDear\n5')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-24
    • 2019-10-31
    • 1970-01-01
    • 1970-01-01
    • 2013-05-05
    • 2016-03-10
    • 2021-04-26
    • 2015-03-28
    相关资源
    最近更新 更多