python - 在python中制作组和列表

标签 python list loops for-loop

我有一个这样的列表。 last_1=[['3', '3', '2', 'F', '2', 'C', '2', 'D', '2', 'A', '2' , '8', '7', 'C', '3', 'B', '2', 'E', '2', 'E', '3', '3', '3', ' 4', '3', '3', '3', '0', '3', 'B', '2', '8', '3', '3', '2', 'D' , '2', 'E'], ['2', 'C', '2', 'A', '3', '3', '2', 'E', '2', '8' , '7', '4', '7', 'A', '5', '3', '7', 'C', '3', '9', '2', 'D', ' 2', 'F', '2', 'F', '3', 'B', '2', 'E', '3', '8', '7', 'C', '2' , '3', '2', 'D', '2', '7', '7', 'C', '2', '8', '2', 'D', '7', ' C'、'2'、'8'、'3'、'7'、'2'、'A'、'2'、'F'、'3'、'3'、'2'、'E' , '3', 'B', '2', '8', '3', '7', '7', 'C', '2', '3', '2', 'D', ' 2', '7', '2', 'A', '7', 'C', '3', '4', '2', '7', '2', 'F', '3' , 'B', '2', 'E', '7', 'A', '7', '3'], ['3', '8', '3', '7', '3' , '6', '7', 'C', '3', '1', '3', '3', '3', '0', '3', '0', '7', ' 4', '3', 'B', '2', 'A', '3', '5', '7', '3', '6', '2'], ['7', ' C', '7', 'C', '7', 'C', '7', 'C', '2', 'A', '3', '7', '2', '8' , '2', '7', '2', 'A', '2', 'E', '7', 'C', '3', 'B', '2', 'A', ' 3'、'5'、'7'、'C'、'7'、'1'、'7'、'C'、'7'、'A'、'7'、'C'、'5' , '1', '3', '3', '3', '0', '3', '0', '7', 'C', '3', '7', '2', ' 4', '3', '7', '3', '9', '2', '7', '2', '8', '3', '7', '3', '8' , '7', 'A'], ['3', '1', '3', '3', '3', '0', '3', '0', '7', '4' , '7', 'A', '3', '4', '3', '7', '3', '0', '3', '0', '2', 'D', ' 7', 'A', '7', '3']] 如果您认为 last_1 是一个包含 5 个元素的列表。我只想用 5 个元素来保护它们。我的意思是我想得到这样的输出:

> output_hexa=[['33','2F','2C',...,'2E'],['2C','2A','33','2E',...,'73'],[....],[...],[...]]

因为它的长度,我保持简短的输出。顺便说一下,这个 output_hexa 列表可以改变。所以,它的长度可能大于 5 或​​小于 5。我已经尝试了上面的方法。我怎么了?你能说我吗?

output_hexa=[]
hexa_output=[]
b=0
indis_one=0
indis_two=1
for i in range(len(last_1)):
    for x in last_1:
        for j in range((len(x))//2):
            if len(output_hexa)-1*(2)==j:
                indis_one=0
                indis_two=1
                hexa_output.extend(output_hexa)
                output_hexa=[]
                break
            else:
                pass
            output_hexa.insert(j,last_1[i][indis_one]+last_1[i][indis_two])
            indis_one+=2
            indis_two+=2


print(output_hexa)

它给出了 IndexError: list index out of range 错误。

最佳答案

只需使用一个简单的one-line list-comprehension:

[[l[i]+l[i+1] for i in range(0,len(l)-1,2)] for l in last_1]

给出:

[['33', '2F', '2C', '2D', '2A', '28', '7C', '3B', '2E', '2E', '33', '34', '33', '30', '3B', '28', '33', '2D', '2E'], ['2C', '2A', '33', '2E', '28', '74', '7A', '53', '7C', '39', '2D', '2F', '2F', '3B', '2E', '38', '7C', '23', '2D', '27', '7C', '28', '2D', '7C', '28', '37', '2A', '2F', '33', '2E', '3B', '28', '37', '7C', '23', '2D', '27', '2A', '7C', '34', '27', '2F', '3B', '2E', '7A', '73'], ['38', '37', '36', '7C', '31', '33', '30', '30', '74', '3B', '2A', '35', '73', '62'], ['7C', '7C', '7C', '7C', '2A', '37', '28', '27', '2A', '2E', '7C', '3B', '2A', '35', '7C', '71', '7C', '7A', '7C', '51', '33', '30', '30', '7C', '37', '24', '37', '39', '27', '28', '37', '38', '7A'], ['31', '33', '30', '30', '74', '7A', '34', '37', '30', '30', '2D', '7A', '73']]

如果您需要这个解释,请发表评论,我很乐意在此答案中详细解释每个部分,但我假设您可以自己解决...

关于python - 在python中制作组和列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47366403/

相关文章:

algorithm - 我需要一种算法来查看 3 个列表并找到独特的项目

python - 更新元组中的列表

python - 为什么 Windows 上的 Tkinter 渲染质量要差得多?

python - 如何使用 GDAL python 从 LiDAR 点(X、Y、Z)创建网格?

python - 重新排序两个 pandas DataFrame 列中的选择项

c - 如何检查输入结束? C、找到42

javascript - jQuery:让事件在彼此之后运行(队列)

python - Meld 无法在 Ubuntu 中启动

python - 从大小不均的列表列表中找到最大项

Python循环PEP8规则