python - 将列表中项目的连续重复项打包到列表列表中,并根据该连续重复项的索引位置,对另一个列表执行相同操作
问题描述
我有两个列表(“状态”和“伏特”)。我想阅读“状态”列表并将该列表中特定项目的连续重复项打包到列表列表中。然后读取第二个列表(“伏特”)并根据第一个列表(“状态”)中连续重复项的索引位置,将第二个列表(“伏特”)中的项目打包或分组到列表列表中。 请帮助我,我尝试过的代码如下:
请注意:列表“状态”和“伏特”中的项目用空格分隔以显示我要创建的组并将它们放在另一个列表中。
Packed_status = []
Packed_volt = []
status = [1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0]
volt = [2, 3, 4, 5, 1, 3, 7, 2, 6, 5, 3, 3, 8, 4, 9, 5, 3, 6, 2, 7]
for i in range(0, len(status), 1):
if status[i] == 0:
Packed_status.append(status[i])
Packed_volt.append(volt[i])
print Packed_status
print Packed_volt
我得到的输出是:
[0, 0, 0, 0, 0, 0, 0, 0, 0]
[1, 3, 7, 5, 3, 9, 5, 3, 7]
我需要的输出是:
[[0, 0, 0], [0, 0], [0, 0, 0], [0]]
[[1, 3, 7], [5, 3], [9, 5, 3], [7]]
为第 2 个列表分组选择的项目应与第 1 个列表打包或分组的索引位置完全相同(对于连续重复)。
解决方案
列表中的值存储为int
. 所以空间不适用于划分列表。如果你还想回答。您可以使用 list 的值0
和1
.
尝试这个 :
Packed_status = []
Packed_volt = []
status = [1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0]
volt = [2, 3, 4, 5, 1, 3, 7, 2, 6, 5, 3, 3, 8, 4, 9, 5, 3, 6, 2, 7]
count = 0
temp_volt = []
temp_status = []
for i in range(0, len(status), 1):
if status[i] == 0:
temp_status.append(status[i])
temp_volt.append(volt[i])
count = 1
else:
if count == 1:
Packed_status.append(temp_status)
Packed_volt.append(temp_volt)
temp_volt = []
temp_status =[]
count = 0
if count == 1:
Packed_status.append(temp_status)
Packed_volt.append(temp_volt)
print Packed_status
print Packed_volt
输出 :
[[0, 0, 0], [0, 0], [0, 0, 0], [0]]
[[1, 3, 7], [5, 3], [9, 5, 3], [7]]
推荐阅读
- python-3.x - 通过(大列表)键查找字典值的最有效方法?蟒蛇 3.8
- java - Android 10:RN4871 与应用程序作为外围设备的 BLE 配对问题
- reactjs - 如何拒绝 AWS Cognito 中某些用户的登录访问
- node.js - Typeorm 数据库已连接但不执行查询
- python - 将函数应用于 dask 数据框中的列的最有效方法是什么?
- internet-explorer-11 - 访问 Internet Explorer 11 上的按钮 查看下载表单
- html - CSS 选择器无法更改样式
- angular - 将下拉数组从角度材料表导出到 csv
- excel - 想要将电子表格中的值添加到我的代码使用的 url 中 - 节点
- regex - 从文件名中减去 1 的正则表达式