Python - 在表格中水平插入列表

标签 python list stack

我不是特别确定如何解释这个,但这是我目前得到的输出:

0x0 PUSH1       80       ['80']
0x2 PUSH1       40       ['40']
0x4 MSTORE               []
0x8 PUSH2       0010     ['0010']

每次出现 PUSH 项目时,我想将最后一个项目水平插入到列表中,这样我就得到了堆栈的这种表示形式:

0x0 PUSH1       80       ['80']
0x2 PUSH1       40       ['40', '80']
0x4 MSTORE               
0x8 PUSH2       0010     ['0010', '40', '80']

这是我当前的代码:

for (addr, op, params), y in zip(self.instructions, self.stack[::-1]):     
        codes = []
        for x in range(0, 33):
            if op == 'PUSH' + str(x):
                codes.append(params)
        print addr + "\t" + op + "\t\t" + params + "\t" + str(codes)

如果不清楚,我很抱歉,我已经坚持了几个小时,感谢您的帮助!

最佳答案

您的问题在您发布的代码的第二行。你在做 codes = []循环的每次迭代都会删除代码列表的内容。尝试将其移至 for 上方循环,这样它就不会一直被删除。

此外,您的实现似乎非常低效,因为您不需要实际循环 33 次来检查代码,您可以只使用比较。首先,通过执行 number = int(op[-1]) 获取操作结束时的数字, 然后你可以检查 if (op[0:-1] == 'PUSH') and (0 <= number < 33): ...

关于Python - 在表格中水平插入列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51381534/

相关文章:

python - Pyplot errorbar 一直将我的点与线连接起来?

python - 寻找一种避免合并两个数据帧的优雅解决方案

python - 在 Pandas 中按组保留 X% 的最后一行

list - 是否有Dart实用程序将平面列表转换为嵌套列表?

c - 链表堆栈中的 Pop 函数导致段错误 - C

android - 区分从主屏幕启动的 Activity 或从 App 启动的另一个 Activity

python - 选择要调整面板的哪一部分

list - 通过灵活类型的异构列表

python - 无法将 sqlite 查询放入单独的列表 python

python - 如何将行数堆叠到一行并分配id