首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试图创建一个数组。继续获取TypeError

试图创建一个数组。继续获取TypeError
EN

Stack Overflow用户
提问于 2018-11-20 23:39:53
回答 1查看 1.8K关注 0票数 1

我试图更好地掌握数据结构。我一直试图添加一个数组作为另一个数组的元素,但是当我尝试创建一个数组时,我一直得到TypeError:数组项必须是unicode字符。我正在根据我所能告诉T的内容来跟踪录像/我读到的所有东西。

代码语言:javascript
复制
from array import array

Swords = array('u',['Steel Sword', 'Bronze Sword', 'Iron Sword'])
Axes = ['Steel Axe', 'Bronze Axe', 'Iron Axe']
Maces = ['Steel Mace','Bronze Mace','Iron Mace']
Bows = ['Wood Bow', 'Bone Bow', 'Obsidian Bow']
Daggers = ['Steel Dagger', 'Bronze Dagger', 'Obsidian Dagger']

Weapons = array('u',([Swords])

for i in Weapons:

    print(i)

知道怎么回事吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-21 02:20:17

'u'类型代码对应于Python过时的unicode字符。这意味着它将与unicode字符一起工作。你可以测试这个

代码语言:javascript
复制
test_one = array("u", ["\u2641","\u2642","\u2643"])
for i in test_one:
    print(i)

你也可以用这个看到它

代码语言:javascript
复制
test_two = array("u", ["T","e","s","t"])
for i in test_two:
    print(i)

注意,在这两种情况下,它都是一个字符。不是整个弦乐。为了执行字符串,您必须将每个字符串转换为一个字符列表。

代码语言:javascript
复制
test_three = array("u", [ch for ch in "Test"])
for i in test_three:
    print(i)

最后,如果要从字符串列表中分解单个字符,可以执行类似于test_three的列表理解,也可以使用生成器。

代码语言:javascript
复制
def character_generator(word_list):
    for word in word_list:
        for ch in word:
            yield ch

test_four = array("u", character_generator(["Test","One","Two"]))
for i in test_four:
    print(i)

不过,在一天结束时,u类型编码是针对单个字符的。不是弦乐。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53403248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档