繁体   English   中英

Append 个不同长度的字符串到数组

[英]Append strings of different length to array

我尝试将 append 内容从如下列表中取出:["a", "b", "cd"] 到一个数组。 可以 append “单个”字符串,如“a”和“b”,但我如何 append “cd”?

from array import array


def function(a):
    our_array = array("u",[])
    our_array.insert(0,a)
    print(our_array)


#Working
function("a")

#Not working
function("cd")

array("u",[])表示our_array元素的类型是wchar_t ( docs )。 由于"cd"不是wchar_t ,因此您不能将它放入此数组中。 您可以为此目的使用list 例如:

def function(a):
    our_list = []
    our_list.append(a)
    print(our_list)

array接口只允许使用.append添加单个元素,字符串'ab'不是u类型数组的单个元素。

假设我们有一个现有的数组

x = array('u', 'cd')

要添加'ab' ,只需从该字符串创建另一个数组,然后使用切片将其插入:

x[:0] = array('u', 'ab')

或者连接 arrays 并返回:

x = array('u', 'ab') + x

或者遍历字符串:

for position, c in enumerate('ab'):
    x.insert(position, c)

请注意,每次插入都会更改 position 下一个值应插入的位置,因此我们需要使用索引向上计数。 enumerate是这方面的自然工具。

"".join()可以让你做到这一点。

我像这样重构了 function:

def function(a):
    letters = []
    for letter in a:
        letters.append(letter)
    our_array = array("u","".join(letters))
    print(our_array)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM