我试图更好地掌握数据结构。 我一直试图将一个数组添加为另一个数组的元素,但是当我尝试创建一个数组时,我不断收到TypeError:Array项必须是Unicode字符。我正在跟踪我能听见的视频/所有读到T的内容。
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)
知道发生了什么吗?
答案 0 :(得分:1)
'u'
类型的代码对应于Python过时的unicode字符。这意味着它将使用unicode字符。你可以测试一下
test_one = array("u", ["\u2641","\u2642","\u2643"])
for i in test_one:
print(i)
您也可以通过它查看
test_two = array("u", ["T","e","s","t"])
for i in test_two:
print(i)
注意,在两种情况下,它都是一个字符。不是整个字符串。为了处理字符串,您必须将每个字符串转换为字符列表。
test_three = array("u", [ch for ch in "Test"])
for i in test_three:
print(i)
最后,如果您想从字符串列表中分解单个字符,则可以进行类似于test_three
的列表理解,也可以使用生成器。
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
类型代码是针对单个字符的。不是字符串。