2017-06-20 83 views
0

我在python中有这个list of list,我想使用一个打印语句只打印主列表中每个列表中的最后2个项目。以下是我的示例列表:[['Violet', 1, '219'], ['Yellow', 2, '235'],['Yellow', 1, '25']]。我基本上是想打印上面的样本数据是这样的:在python中打印列表中某些列的错误

Following are the rooms that are currently available - {Floor:1,Room Number: 219},{Floor:2,Room Number:235},{Floor:1,Room Number: 25}

这里是一个print语句我写道:

print("Following are the rooms that are currently available - - "+ str((",".join(lst))))

当我执行此我得到错误的TypeError: sequence item 0: expected str instance, list found

我仍然在学习python,因此我无法找到一种方法在上面显示的所需输出中打印我的列表并解决此错误。我怎样才能做到这一点?

+0

变量'lst'的内容是什么? –

回答

1
inner_list_str = ["{Floor: %d,Room Number: %s}" % (floor, room_number) 
        for _, floor, room_number in outer_list] 
print "Following are the rooms that are currently available - " + ','.join(inner_list_str) 
1

您可以使用这样的事情:

lst = [['Violet', 1, '219'], ['Yellow', 2, '235'],['Yellow', 1, '25']] 
res = "Following are the rooms that are currently available - - " 
for room in lst: 
    res += '{Floor:' + str(room[1]) + ', Room Number:' + str(room[2]) + '},' 
print(res) 

,如果你想删除最后一个 '':通过列表

print(res[:-1]) 
0
d = [['Violet', 1, '219'], ['Yellow', 2, '235'],['Yellow', 1, '25']] 
for L in d: 
    print 'Floor ' + str(L[1])+ ', Room number ' + L[2] 

你可以简单的循环并用它们的indeces访问这些值。

0

你只需要使用一个for循环遍历列表清单中,然后打印第二和第三要素:

rooms = [['Violet', 1, '219'], ['Yellow', 2, '235'],['Yellow', 1, '25']] 
print("Following are the rooms that are currently available - ") 
for room in rooms: 
    print("{Floor:"+str(room[1])+",Room Number: "+str(room[2])+"},") 

说明:

当你遍历列表清单,room正在设置到每个单独列表中:

第一个循环:room = ['Violet', 1, '219']

第二循环:room = ['Yellow', 2, '235']

第三循环:room = ['Yellow', 1, '25']

然后,循环内的代码仅仅打印出room[1]这是在列表中的第二元件:

[ 'Violet',,'219']

然后room[2]这是第三:

[ '紫',1,'219']

在线尝试:

https://repl.it/It7Y/0