在python中创建元组的秩

在python中创建元组的秩,python,tuples,rank,Python,Tuples,Rank,我该怎么做? 从这个样本开始 Id, Id2 CCC [ (A123 A120 '2011-03'), LL= (A133 A123 '2011-03'), ( D123 D120 '2011-04'), (D140 D123 '2011-04'),] 我试图得到这个,给每个元组添加秩 [(A123, A120 ,'2011-03',1), LL= (A133, A123,

我该怎么做? 从这个样本开始

         Id,  Id2    CCC
        [  (A123 A120 '2011-03'), 
  LL=     (A133 A123 '2011-03'),
         ( D123 D120 '2011-04'),
          (D140 D123 '2011-04'),]
我试图得到这个,给每个元组添加秩

     [(A123, A120 ,'2011-03',1), 
  LL=     (A133, A123, '2011-03',2),
         ( D123, D120, '2011-04',3),
          (D140, D123, '2011-04',4),]


    for i in range(len(LL)):
        RowId = i+1
        LL.append(RowId)   
我得到这样的东西:

        [(A123, A120 ,'2011-03'), 
  LL=     (A133, A123, '2011-03),
         ( D123, D120, '2011-04),
          (D140, D123, '2011-04),1,2,3,4]
In [28]: LL
Out[28]: 
[('A123', 'A120', '2011-03'),
 ('A133', 'A123', '2011-03'),
 ('D123', 'D120', '2011-04'),
 ('D140', 'D123', '2011-04')]
对于范围内的i(len(LL)): RowId=i+1 LL[i]。追加(RowId) 请测试一下

import pprint
LL= [ ('A123', 'A120', '2011-03'),
      ('A133', 'A123', '2011-03'),
      ('D123', 'D120', '2011-04'),
      ('D140', 'D123', '2011-04'),]
LL = [row+(i,) for i,row in enumerate(LL,1)]
pprint.pprint(LL)
对于范围内的i(len(LL)): RowId=i+1 LL[i]。追加(RowId) 请测试一下

import pprint
LL= [ ('A123', 'A120', '2011-03'),
      ('A133', 'A123', '2011-03'),
      ('D123', 'D120', '2011-04'),
      ('D140', 'D123', '2011-04'),]
LL = [row+(i,) for i,row in enumerate(LL,1)]
pprint.pprint(LL)
屈服

[('A123', 'A120', '2011-03', 1),
 ('A133', 'A123', '2011-03', 2),
 ('D123', 'D120', '2011-04', 3),
 ('D140', 'D123', '2011-04', 4)]

这里有一点解释:

我们从定义如下的
LL
开始:

        [(A123, A120 ,'2011-03'), 
  LL=     (A133, A123, '2011-03),
         ( D123, D120, '2011-04),
          (D140, D123, '2011-04),1,2,3,4]
In [28]: LL
Out[28]: 
[('A123', 'A120', '2011-03'),
 ('A133', 'A123', '2011-03'),
 ('D123', 'D120', '2011-04'),
 ('D140', 'D123', '2011-04')]
第一个技巧是使用:

这与您想要的很接近,只是“秩”从0开始计数,并放在行的前面而不是末尾。我们可以告诉
enumerate
使用
enumerate(LL,1)
以1开始计数,并且我们可以使用一个:

在列表理解中,
是类似于
('A123','A120','2011-03')的元组
, 而
行+(i,)
是元组的总和:

In [32]: ('A123', 'A120', '2011-03')+(1,)
Out[32]: ('A123', 'A120', '2011-03', 1)
这就是列表中每一行的构造方式

屈服

[('A123', 'A120', '2011-03', 1),
 ('A133', 'A123', '2011-03', 2),
 ('D123', 'D120', '2011-04', 3),
 ('D140', 'D123', '2011-04', 4)]

这里有一点解释:

我们从定义如下的
LL
开始:

        [(A123, A120 ,'2011-03'), 
  LL=     (A133, A123, '2011-03),
         ( D123, D120, '2011-04),
          (D140, D123, '2011-04),1,2,3,4]
In [28]: LL
Out[28]: 
[('A123', 'A120', '2011-03'),
 ('A133', 'A123', '2011-03'),
 ('D123', 'D120', '2011-04'),
 ('D140', 'D123', '2011-04')]
第一个技巧是使用:

这与您想要的很接近,只是“秩”从0开始计数,并放在行的前面而不是末尾。我们可以告诉
enumerate
使用
enumerate(LL,1)
以1开始计数,并且我们可以使用一个:

在列表理解中,
是类似于
('A123','A120','2011-03')的元组
, 而
行+(i,)
是元组的总和:

In [32]: ('A123', 'A120', '2011-03')+(1,)
Out[32]: ('A123', 'A120', '2011-03', 1)

这就是列表理解的每一行的构造方式。

您可以使用enumerate创建秩变量(从1开始添加1),并创建新元组的新列表,因为元组是不可变的,这就是我们创建新元组的原因

例如,您的列表中也应包括:

In [1]: LL=[(1,2,3),(1,2,3)]

In [2]: [j+(i+1,) for i,j in enumerate(LL)]
Out[2]: [(1, 2, 3, 1), (1, 2, 3, 2)]

您可以使用enumerate创建秩变量(从1开始添加1),并创建新元组的新列表,因为元组是不可变的,这就是我们创建新元组的原因

例如,您的列表中也应包括:

In [1]: LL=[(1,2,3),(1,2,3)]

In [2]: [j+(i+1,) for i,j in enumerate(LL)]
Out[2]: [(1, 2, 3, 1), (1, 2, 3, 2)]

哦。一旦创建了元素,就不能向元组中添加元素:)为什么不使用列表呢。一旦创建了元素,就不能将它们添加到元组:)为什么不使用列表呢?这有点奇怪。使用LL=pprint.pprint([row+(i,)表示i,枚举(LL,1)中的行)]。若要继续处理,请单击“LL”。并获得错误。LL需要保持列表类型。@user428862:若要重新定义
LL
请使用
LL=[枚举(LL,1)中的行+(i,)for i,行]
。与此相关的内容。使用LL=pprint.pprint([row+(i,)表示i,枚举(LL,1)中的行)]。若要继续处理,请单击“LL”。并获得错误。LL需要保留在列表类型中。@user428862:若要重新定义
LL
请使用
LL=[枚举(LL,1)中的行+(i,)代表i,行]