关于#python#的问题:Python请写一程序产生一新序列

Python请写一程序产生一新序列,将由0和1所组成的数列。
怎么用Python写代码求这个??

你可以本地运行试一下啊

def transform_sequence(sequence):
    transformed_sequence = []
    count = 0

    for num in sequence:
        if num == 1:
            count += 1
        else:
            if count > 0:
                transformed_sequence.append(count)
            transformed_sequence.append(0)
            count = 0

    if count > 0:
        transformed_sequence.append(count)

    return transformed_sequence

# 测试示例
sequence = [1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0]
transformed_sequence = transform_sequence(sequence)
print(transformed_sequence)

img

import itertools as it 

a = [1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0]
result = [[i, len(list(v))] for i, v in it.groupby(a)]
res = []
[res.extend([c] if v == 1 else [0] * c) for v, c in result]
print(res)

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7464806
  • 这篇博客你也可以参考下:运用Python——劳拉下棋_四连环游戏_重力四子棋游戏(代码与游戏判定)
  • 除此之外, 这篇博客: Python NumPy 学习记录(三)数组操作中的 11.数组排序 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 排序是指将元素按有序顺序排列。

  • 您还可以看一下 CSDN就业班老师的Python全栈工程师特训班第十四期-直播回放课程中的 Python全栈工程师特训班第十四期-第六周-3小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    问题解答:

    import numpy as np
    
    arr = np.array([1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0])
    
    new_arr = []
    count = 0
    for i in range(len(arr)):
        if arr[i] == 1:
            count += 1
        else:
            if count != 0:
                new_arr.append(count)
                count = 0
            new_arr.append(0)
    if count != 0:
        new_arr.append(count)
    
    print(new_arr)
    

    输出结果为:[2, 0, 1, 0, 0, 4, 0, 0, 0, 1, 0]

    步骤解析: 1. 创建一个示例数组arr,其值为[1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0]; 2. 创建一个新数组new_arr,用于存储新的数列; 3. 创建一个变量count,用于统计连续出现的1的次数; 4. 遍历示例数组arr,如果当前值为1,则让count自增;如果当前值为0,则判断count是否为0,如果不为0则将count添加到新数组中,然后将count重置为0,最后将0添加到新数组中; 5. 判断遍历结束后count是否为0,若不为0则将其添加到新数组中; 6. 输出新数组new_arr,即为将示例数组arr转换后的结果。

    参考资料: Numpy 官方文档:https://numpy.org/doc/stable/index.html