Python中使用数组和指针的C语言间隔

问题描述 投票:-1回答:1

所以首先,这是代码(文件是一种二进制文件:

def function(file):
    for r in range(0, len(file), 1):
        file = file[:r] + file[r+2:] + file[r:]
        print '%x' % r

事实是我必须将此Python代码传递给C,但我不知道如何传递此行:file[:r]+file[r+2:]+file[r:](它使用间隔功能,我想数组和指针可以提供帮助,但这就是我在这里所知道的全部)...

如果有人有一个主意,那会对我有帮助!

谢谢

python c arrays pointers slice
1个回答
0
投票

我不太了解您要实现的功能,因此我无法翻译它。

您正在添加列表切片,但是我不确定这是否是您期望的行为。在python中,普通列表上加法的行为是串联,因此:

<<< l = [1,2,3,4,5,6,7]
<<< l[:2] + l[5:]

输出结果:

>>> [1,2,6,7]

但是,假设您要执行的操作是列表范围的总和,可以这样进行:

int sum(int *numbers, size_t len) {
  int r = 0;
  for (size_t i = 0; i < len; i++)
    r += numbers[i];
  return r;
}

void function(int *file, size_t len_file) {
  for (size_t r = 0; r < len_file; r++) {
    int s = sum(file, r) + sum(file+2, len_file) + sum(file+r, len_file);
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.