有人可以告诉我如何按行顺序从字典中获取值(从第二行开始),例如获取所有行的第一个值,当行完成时,移动到从所有行获取第二个值,直到收集完所有值(不再有列)。
E.g。这是一张表:
('E', 'K', 'Y') # <- don't get the values from the first row
('B', 'C', 'B') # start getting values from this (second row)
('C', 'B', 'F')
('F', 'C', 'A')
('C', 'C', 'C')
('B', 'C', 'B')
('E', 'B', 'F')
('B', 'B', 'F')
('D', 'A', 'A')
('A', 'D', 'F')
上表应打印值:
BCFCBEBDACBCCCBBADBFACBFFAF
创建编码和解码器程序。按正确顺序粘贴打印值。
感谢。
答案 0 :(得分:2)
如果列表中包含所有元组,则可以使用zip
和join
:
>>> l=[('E', 'K', 'Y') ,('B', 'C', 'B') ,('C', 'B', 'F'),('F', 'C', 'A'),('C', 'C', 'C'),('B', 'C', 'B'),('E', 'B', 'F'),('B', 'B', 'F'),('D', 'A', 'A')]
>>> ''.join([''.join(i) for i in zip(*l[1:])])
'BCFCBEBDCBCCCBBABFACBFFA'
答案 1 :(得分:0)
替代方式,它获取字符列表而不是str:
答案 2 :(得分:0)
如果数据结构是元组列表,则表示:
l =[('C', 'B', 'F'),
('F', 'C', 'A'),
('C', 'C', 'C'),
('B', 'C', 'B'),
('E', 'B', 'F'),
('B', 'B', 'F'),
('D', 'A', 'A'),
('A', 'D', 'F')]
这样的事情可以解决问题:
string = ""
for i in range(3):
for element in range(1, len(l)):
string+=l[element][i]