如何解压缩元素列表

时间:2015-05-01 15:23:09

标签: python python-2.7

我的代码需要一些帮助,我正在存储多个元素列表,当我尝试打印列表时,它只打印一个元素,我有多个元素。

当我尝试这个时:

pos_start = list()
pos_top = list()
pos_width = list()
pos_height = list()
prog_title = list()

for ind, row in enumerate(programs):
    programs_top = 315
    program_height = 33
    program_gap = 3
    position_start = start_pos
    position_top = programs_top + channel_index * (program_height + program_gap + 1.5)

    #create width size for per program button
    if program_length >= 10 and program_length <= 45:  #30 mins
        program_width = 342

    position_start = map(str, pos_start)
    pos_start.append(position_start)
    pos_top.append(position_top)
    pos_width.append(program_width)
    pos_height.append(program_height)
    prog_title.append(program_title)
position_start = map(str, pos_start)
position_top = map(str, pos_top)
program_width = map(str, pos_width)
program_height = map(str, pos_height)
prog_title = map(str, prog_title)

for position_start, position_top, program_width, program_height in zip(position_start, position_top, program_width, program_height):

    pos_start = int(float(position_start))
    pos_top = int(float(position_top))
    pos_width = int(float(program_width))
    pos_height = int(float(program_height))
    print pos_start

以下是pos_start的元素列表:

13:41:23 T:4812  NOTICE: ['375', '1073', '1771', '2120', '2469', '2818', '3167', '3516', 
'3865', '4563', '5261', '5959', '6657', '7355', '7704', '8053', '8402', '8751', '9100', '9449', 
'9798', '10147', '10496', '10845', '11543', '12241', '12939', '13288', '13637', '13986', '14335',
'15033', '15731', '16080', '16429', '16778', '17127', '17476', '17825', '18174', '18523', '18872', 
'19221', '19570', '19919', '20268', '20617', '20966', '21315', '21664', '22013', '22362', '22711', 
'23060', '23409', '23758', '24107', '24456', '24805', '25154', '25503', '25852', '26201', '26550', 
'26899', '27248', '27597', '28295', '28993']

结果如下:

16:12:22 T:6852  NOTICE: 375

请告诉我如何使用我创建的for循环从列表中打印每个元素?

1 个答案:

答案 0 :(得分:1)

此行的作业:

pos_start = int(float(position_start))

覆盖包含列表的早期变量。您必须使用其他变量名称才能避免覆盖。

此外,调用int(float(position_start))并没有多大意义。你为什么两次强迫这种类型?这应该与简单int(position_start)相同。

同样,你的行:

position_start, position_top, program_width, program_height in zip(position_start, position_top, program_width, program_height):

也有名称冲突。这将覆盖原始变量。

关于你的评论,没有一种简单的方法可以为每个循环迭代创建一个新的变量名,但是你可以将列表视为每个索引的变量的逻辑列表。