列表的复杂行为

时间:2018-12-15 20:53:18

标签: python python-3.x list

我需要对列表进行一些奇怪而复杂的计算。我已经尝试过并且已经尽力启动并运行它,但是它遇到了错误。更好的说法是很难实现该行为。

我有以下列表。

$reply = $this->client->oauth_requestToken(array('oauth_callback' => $this->clientCallback));

我有这段代码,但没有真正起作用:

A = [1,1,1,2,2,2]
B = [3,3]          # B list is length of numbers 1 and 2.
E = [10,10]
C = 1
D = []

解释以取得成果。

我希望有一个for循环,该循环可以将值附加到我的空列表中,该列表以 for k in B: for j in E: for i in range(len(A)-k): print(i) if i == 0: D.append(C) else: D.append(C+(E[k])) print(D) ,{ {1}}。并查看B[0]= 3,即。在列表A中选择后3个值,然后do something with first 3 values并将其全部附加以清空列表。

前3个值:

当选择B[1]= 3时,我想拥有do something to them,并且在A[0]D[0] = C的情况下,A[1]应该是A[2]并且B list

最后3个值:

当选择B[1]= C + 1*E[0]时,我想拥有B[2]= C + 2*E[0],并且在A[3]D[3] = C的情况下,A[4]应该是A[5]并且B list

预期输出:

B[4]= C + 1*E[1]

如果要将A列表更改为A = [1,1,2,2]和B = [2,2]或其他内容,我想以编程方式获取它。

1 个答案:

答案 0 :(得分:1)

初始化列表

A = [1,1,1,2,2,2]
B = [3,3]          # B list is length of numbers 1 and 2.
E = [10,10]
C = 1
D = []

我们要从0的第一时间开始算起A,从上一个开始的下一次算起,再加上已经使用了多少项,因此我们初始化start

start = 0 

我们在b的元素B上开始循环,在k中对其进行计数,从A中提取所需的元素,并更新该元素的起始位置下一关

for k, b in enumerate(B): 
    sub_A = A[start:start+b] 
    start = start+b 

现在,子列表的元素a上有一个内部循环,用i对其进行计数,请注意,对于第一项i为零,因此我们附加了{{1 }},按要求

C+0*E[k]=C

在没有我的评论的情况下查看所有内容

    for i, _ in enumerate(sub_A): 
        D.append(C+i*E[k])