2013-07-17 79 views
4
使用记录整数/字符串

我想与项目,例如索引打印列表项为如何打印列表项+在Python

0: [('idx', 10), ('degree', 0)] 
1: [('idx', 20), ('degree', 0)] 

基于下面的代码,我怎么能追加“0 :'作为整数+字符串+列表项?

import logging 

class Node(object): 
    __slots__= "idx", "degree" 

    def __init__(self, idx, degree): 
     self.idx = idx 
     self.degree = 0 


    def items(self): 
     "dict style items" 
     return [ 
      (field_name, getattr(self, field_name)) 
      for field_name in self.__slots__] 

def funcA(): 

    a = [] 
    a.append(Node(10, 0)) 
    a.append(Node(20, 0)) 

    for i in range(0, len(a)): 
     logging.debug(a[i].items()) 

if __name__ == '__main__': 
    logging.basicConfig(level=logging.DEBUG) 
    funcA() 

目前,结果是

DEBUG:root:[('idx', 10), ('degree', 0)] 
DEBUG:root:[('idx', 20), ('degree', 0)] 

期待

DEBUG:root:0:[('idx', 10), ('degree', 0)] 
DEBUG:root:1:[('idx', 20), ('degree', 0)] 

回答

5

我会做这样的。

def funcA(): 
    a = [] 
    a.append(Node(10, 0)) 
    a.append(Node(20, 0)) 

    for i in range(0, len(a)): 
     message = '%s:%s' % (i, a[i].items()) 
     logging.debug(message) 

将会产生这样的输出:

DEBUG:root:0:[('idx', 10), ('degree', 0)] 
DEBUG:root:1:[('idx', 20), ('degree', 0)] 

您还可以使用加入:

message = ':'.join([str(i), str(a[i].items())]) 

或格式:

message = '{0}:{1}'.format(str(i), a[i].items()) 

无论是最清楚你。