小编mer*_*iam的帖子

在列表中查找最长的运行时间

给定一个数据列表,我正在尝试创建一个新列表,其中位置的值i是从i原始列表中的位置开始的最长运行的长度.例如,给定

x_list = [1, 1, 2, 3, 3, 3]
Run Code Online (Sandbox Code Playgroud)

应该返回:

run_list = [2, 1, 1, 3, 2, 1]
Run Code Online (Sandbox Code Playgroud)

我的解决方案

freq_list = []
current = x_list[0]
count = 0
for num in x_list:
    if num == current:
        count += 1
    else:
        freq_list.append((current,count))
        current = num
        count = 1
freq_list.append((current,count))

run_list = []
for i in freq_list:
    z = i[1]
    while z > 0:
        run_list.append(z)
        z -= 1 
Run Code Online (Sandbox Code Playgroud)

首先,我创建一个freq_list元组列表,其中每个元组的第一个元素是元素x_list,其中第二个元素是总运行的数量.

在这种情况下:

freq_list = [(1, 2), …
Run Code Online (Sandbox Code Playgroud)

python list

18
推荐指数
4
解决办法
1447
查看次数

标签 统计

list ×1

python ×1