为了账号安全,请及时绑定邮箱和手机立即绑定

在 Python 中组合数组中的值

在 Python 中组合数组中的值

幕布斯6054654 2023-09-26 14:44:48
我有一个像这样的数组:['A','B','C','D','E']。我一直在试图弄清楚如何使它像这样: ['AB', 'CD', 'E']我不知道从哪里开始。提前致谢!
查看完整描述

5 回答

?
万千封印

TA贡献1891条经验 获得超3个赞

main.py


a = ['A', 'B', 'C', 'D', 'E']

b = [i + j for i, j in zip(a[:-1:2], a[1::2])]

if len(a) % 2 == 1:

  b.append(a[-1])

print(b)


结果


$ python main.py

['AB', 'CD', 'E']


查看完整回答
反对 回复 2023-09-26
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

>>> [''.join(a[i:i+2]) for i in range(0, len(a), 2)]

['AB', 'CD', 'E']

或者(因为我喜欢迭代器)


>>> it = iter(a)

>>> [s + next(it, '') for s in it]

['AB', 'CD', 'E']


查看完整回答
反对 回复 2023-09-26
?
MYYA

TA贡献1868条经验 获得超4个赞

我认为更简单的方法是迭代数组并连接字符,如果您有偶数长度的数组,它就可以工作,因此您可以添加检查并在奇数长度的情况下附加最后一个元素。


array = ['A', 'B', 'C', 'D', 'E']


array2 = [f"{array[i]}{array[i+1]}" for i in range(0, len(array)-1, 2)]


if len(array)%2!=0:

    array2.append(array[-1])


print(array2)


查看完整回答
反对 回复 2023-09-26
?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

尝试这样。这是非常简单的答案,但应该有效。


my_array =  ['A', 'B', 'C', 'D', 'E']


def combine_array(my_array):

    mixed_array = []

    start_new = True

    for item in my_array:

        if start_new:

            mixed_array.append(item)

            start_new = False

        else:

            mixed_array[-1] = mixed_array[-1] + item

            start_new = True

    return mixed_array



if __name__ == "__main__":

    try:

        print(combine_array(my_array))

    except Exception as err:

        print(err)


查看完整回答
反对 回复 2023-09-26
?
呼如林

TA贡献1798条经验 获得超3个赞

startArray = ['A', 'B', 'C', 'D', 'E']

currentIndex = 0

finishArray = ['']

for x in startArray:

    if len(finishArray[currentIndex]) == 2:

        currentIndex += 1

        finishArray.insert(currentIndex,x)

    else: 

        finishArray[currentIndex] += x

print(finishArray)


查看完整回答
反对 回复 2023-09-26
  • 5 回答
  • 0 关注
  • 130 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信