Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:对列表进行计数并显示计数范围_Python - Fatal编程技术网

Python:对列表进行计数并显示计数范围

Python:对列表进行计数并显示计数范围,python,Python,所以我有一个列表,有两个数字,分别是1和0。列表中的每一项都相当于1秒的音频。0是语音,1是音乐 列表示例: [1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,1,1] 我希望输出显示音频的开始、结束和音频的类型 输出: 1,6, music 7,12, speech 13,17, music 18,24, speech 25,26, music 27,32, speech 33,3

所以我有一个列表,有两个数字,分别是1和0。列表中的每一项都相当于1秒的音频。0是语音,1是音乐

列表示例:

[1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,1,1]
我希望输出显示音频的开始、结束和音频的类型

输出:

1,6,    music 
7,12,   speech
13,17,  music
18,24,  speech
25,26,  music
27,32,  speech
33,37,  music
输出:


你的尝试有什么不起作用?你的问题是什么?请看第页投票率最高答案的第二部分。它与你想要的东西“相似”,谢谢你的帮助。这正是我想要输出的样子。谢谢你的帮助。
a = [1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,1,1]
changes = [i+1 for i,val in enumerate(a[:-1]) if val != a[i+1]]
lists_start_end = [(1,changes[0])] + [(val+1,changes[i+1]) for i,val in enumerate(changes[:-1])] + [(changes[-1],len(a))]
[(1, 6), (7, 12), (13, 17), (18, 24), (25, 26), (27, 32), (32, 37)]
In[2]: data = [1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1]
In[3]: from itertools import groupby
  ...: 
  ...: dex = 1
  ...: result = []
  ...: for k, g in groupby(data):
  ...:     length = sum(1 for _ in g)
  ...:     result.append((
  ...:         (dex, dex + length - 1),
  ...:         'music' if k == 1 else 'speech'
  ...:     ))
  ...:     dex += length
  ...: 
In[4]: result
Out[4]: 
[((1, 6), 'music'),
 ((7, 12), 'speech'),
 ((13, 17), 'music'),
 ((18, 24), 'speech'),
 ((25, 26), 'music'),
 ((27, 32), 'speech'),
 ((33, 37), 'music')]