在python中创建元组的等级

| 我该怎么做呢? 从这个样本开始
         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]
    
已邀请:
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)]
这里有点解释: 我们从定义如下的“ 5”开始:
In [28]: LL
Out[28]: 
[(\'A123\', \'A120\', \'2011-03\'),
 (\'A133\', \'A123\', \'2011-03\'),
 (\'D123\', \'D120\', \'2011-04\'),
 (\'D140\', \'D123\', \'2011-04\')]
第一个技巧是使用枚举:
In [30]: list(enumerate(LL))
Out[30]: 
[(0, (\'A123\', \'A120\', \'2011-03\')),
 (1, (\'A133\', \'A123\', \'2011-03\')),
 (2, (\'D123\', \'D120\', \'2011-04\')),
 (3, (\'D140\', \'D123\', \'2011-04\'))]
除了\“ rank \”从0开始计数,并放在行的前面而不是结尾之外,它与您想要的内容接近。我们可以使用
enumerate(LL,1)
告诉
enumerate
从1开始计数,并且可以使用列表推导将排名放在行尾:
In [31]: [row+(i,) for i,row in enumerate(LL,1)]
Out[31]: 
[(\'A123\', \'A120\', \'2011-03\', 1),
 (\'A133\', \'A123\', \'2011-03\', 2),
 (\'D123\', \'D120\', \'2011-04\', 3),
 (\'D140\', \'D123\', \'2011-04\', 4)]
在清单理解中,
row
是一个类似
(\'A123\', \'A120\', \'2011-03\')
的元组,
row+(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)]
    
对于范围内的我(len(LL)):         RowId = i + 1         LL [i] .append(RowId) 请测试一下。     

要回复问题请先登录注册