gpt4 book ai didi

python - 如何根据列表中的某些值在 Python 中创建 2D 列表

转载 作者:行者123 更新时间:2023-11-30 23:18:59 25 4
gpt4 key购买 nike

我有以下值的列表:

numbers = [127, 127, 0, 1, 1, 1, 4, 14, 127, 0, 1, 1, 1, 3, 8, 4, 14, 127, 0, 1, 1, 1, 4, 14, 127, 0, 1, 1, 1, 3, 8, 4, 14, 127, 0, 1, 1, 1, 3, 8, 4, 14, 127, 0, 1, 1, 1, 4, 14, 127, 0, 1, 1, 1, 4, 14, 127, 0, 1, 1, 1, 3, 8, 4, 14, 127, 0, 1, 1, 1, 3, 8, 4, 14, 127, 0, 1, 1, 1, 3, 8, 4, 14, 127, 0, 1, 1, 1, 4, 14, 127, 0, 1, 1, 1, 4, 14, 127, 0, 1, 1, 1, 2, 10, 127, 0, 1, 1, 1, 2, 10, 127, 0, 1, 1, 1, 2, 10, 127, 0, 1, 1, 1, 2, 10, 127, 0, 1, 1, 1, 2, 10, 6, 1, 127, 0, 1, 1, 1, 2, 10, 6, 1, 127]

这些都指的是微 Controller 引脚的“功能”,基本上是可用的“模式”。该结构的工作方式是,第一个数字是模式,第二个数字是分辨率,当返回 127 时,意味着该引脚的所有模式都已用尽。例如,

此列表中的第三个引脚支持模式 0, 1, 4 和分辨率 1, 1, 14。同样,前两个引脚不支持任何模式(这就是为什么有两个连续的127)。

我的问题是,如何为所有引脚及其支持的模式制作 2D 列表?如何循环遍历该数字列表,每次达到 127 时添加一个新列表?这是我到目前为止所拥有的:

    pins = []
supported_modes = [] # Temporary list to hold values
for i in range(0, len(numbers)):
if numbers[i] == 127:
pins.append(supported_modes) # Append to pin list
del supported_modes[:]
return
supported_modes.append(numbers[i])

但是,这存在各种各样的问题。主要认为每次都会删除supported_modes。理想情况下,此列表(如果仅填充前三个引脚)如下所示:

pins = [ [], [], [0, 1, 1, 1, 4, 14] etc. ]

谢谢

最佳答案

pins = []
supported_modes = []

for number in numbers:
if number == 127:
pins.append(supported_modes)
supported_modes = []
else:
supported_modes.append(number)

您遇到了几个问题:return 应该是 continue,但我更喜欢 elsedel在那里没有用,因为正如你所说,即使在插入它之后它也会清除 supported_modes ,因为在 Python 中一切都是通过引用的。

关于python - 如何根据列表中的某些值在 Python 中创建 2D 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26373806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com