You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何向Python array数组中追加不同长度的字符串?

问题原因与解决方法

问题原因

你使用的array("u")是Unicode字符数组,它要求每个元素必须是单个Unicode字符。而"cd"是长度为2的字符串,不符合该数组的类型约束,所以插入失败。

解决方案

根据你的实际需求,有两种处理方式:

1. 将多字符字符串拆分为单个字符存入数组

如果需要把字符串的每个字符单独作为数组元素,直接利用array的初始化特性(支持传入可迭代的字符序列),或者逐个插入字符:

from array import array

def function(a):
    # 直接用字符串初始化Unicode字符数组,自动拆分每个字符
    our_array = array("u", a)
    print(our_array)

# 测试
function("a")    # 输出: array('u', 'a')
function("cd")   # 输出: array('u', 'cd')

如果需要插入到指定位置(比如索引0),可以遍历字符串逐个插入:

from array import array

def function(a):
    our_array = array("u", [])
    # 遍历字符串,逐个插入到数组开头(注意顺序会反转)
    for char in a:
        our_array.insert(0, char)
    print(our_array)

function("cd")  # 输出: array('u', 'dc')

# 若要保持原字符串顺序,改用extend方法
def function(a):
    our_array = array("u", [])
    our_array.extend(a)
    print(our_array)

function("cd")  # 输出: array('u', 'cd')

2. 存储完整的字符串作为数组元素

如果需要把整个字符串作为一个元素存储,array的"u"类型不适用,推荐直接使用Python原生列表:

def function(a):
    our_list = []
    our_list.insert(0, a)
    print(our_list)

function("cd")  # 输出: ['cd']

如果必须使用array模块,可以将字符串编码为字节后存入字节数组:

from array import array

def function(a):
    # 将字符串编码为UTF-8字节,存入字节数组
    our_array = array("b", a.encode("utf-8"))
    print(our_array)
    # 取出时解码为原字符串
    print(our_array.tobytes().decode("utf-8"))

function("cd")
# 输出:
# array('b', [99, 100])
# cd

内容的提问来源于stack exchange,提问作者Hollstream

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 13:55:21