在排序的元组列表中添加换行符\n=

问题描述

有没有办法在应用于元组列表的排序结果中添加换行符?

我的元组列表:

b1 = ("&#20843",222,133,343)
b1a = ("&#20023",3001,61,0)
b2 = ("&#24052",610,33,281)
b3 = ("&#30333",287,70,838)
b4 = ("&#30334",226,13,383)
b5 = ("&#21150",323,3,279)
b6 = ("&#21322",374,21,495)
b6a = ("&#21241",46,1)
b6b = ("&#21253",417,37,471)
b7 = ("&#36125",1424,137,60)
b8 = ("&#26412",76,11,856)

hanzi = [b1,b1a,b2,b3,b4,b5,b6,b6a,b6b,b7,b8]

我应用了一个 sorted 来对元组进行排序:

print(sorted(hanzi,key=lambda hanzi: hanzi[2])

结果是一个元组列表:

[('&#21150',279),('&#26412',856),('&#30334',383),('&#21322',495),('&#24052',281),('&#21253',471),('&#21241',1),('&#20023',0),('&#30333',838),('&#20843',343),('&#36125',60)]

我希望它们在如下列中:
[('办',
('本',
('百',
('半',
('巴',
('包',
('勹',
('丷',
('白',
('八',
('贝',60)]

我是python的初学者,不知道在哪里添加'/n':-) 甚至不知道是否可能!我必须自己修改元组吗?

解决方法

如果你只想要每行一个元组,那么你可以用换行符加入代表:

result = sorted(hanzi,key=lambda hanzi: hanzi[2])
print("\n".join(repr(x) for x in result))

或者,使用 sep

result = sorted(hanzi,key=lambda hanzi: hanzi[2])
print(*result,sep="\n")

如果您想要列表语法(以 [ 开头,中间有逗号,以 ] 结尾),那么您可以改为加入 ,\n 并手动添加 {{1 }} 中:

[]
,

您可以使用pprint

from pprint import pprint
pprint(sorted(hanzi,key=lambda hanzi: hanzi[2]))

,

你可以这样做:

your_list = sorted(hanzi,key=lambda hanzi: hanzi[2])
print(str(your_list).replace("),","),\n"))
,
for item in sorted(hanzi,key=lambda hanzi: hanzi[2]):
    print(item)

输出:

('&#21150',323,3,279)
('&#26412',76,11,856)
('&#30334',226,13,383)
('&#21322',374,21,495)
('&#24052',610,33,281)
('&#21253',417,37,471)
('&#21241',3001,46,1)
('&#20023',61,0)
('&#30333',287,70,838)
('&#20843',222,133,343)
('&#36125',1424,137,60)