Python在打印元组列表时如何删除括号?

时间:2018-12-05 18:49:48

标签: python

如何从此元组输出中删除括号:[(“ fred's,13),(” jack's,19),(“ mark's”,16),(“ amy's”,12),(“ finlay's “,17)]。

这是我用于输出元组的代码:

    file_path = "test.txt"
with open(file_path, 'r') as f:
    file_lines = f.readlines() 
names_and_scores = [(l.strip().split(' ')[0], int(l.strip().split(' ')[2])) for l in file_lines]
names_and_scores.sort(key=lambda x: x[1], reverse=True)
print(names_and_scores[:5])

也许是这样吗?

print ("".join(str(names_and_scores[:5])).strip("()"))

3 个答案:

答案 0 :(得分:0)

names_and_scores[:5]是一个元组列表,这就是为什么您看到输出周围的括号的原因。要删除括号,您可以通过用逗号分隔列表中的所有单个元组元素来将列表转换为字符串:

", ".join(names_and_scores[:5])

答案 1 :(得分:0)

您有点误会。通常,您永远不能从元组中删除字符。由于它们是不可变的,因此您只能创建一个新的,并使用原始的所需元素来构建它。使用方括号的原因是,您的“姓名和分数”的输出是使用列表推导创建的。也就是说,这是一个列表。方括号告诉您这是一个列表,因此您不能“删除它们”。如果要查看每个不带方括号的元组,可以遍历元组列表并打印每个元组。这样,您将得到类似的东西:

("Fred's", 13)
("Jack's", 12)

如果要删除方括号,可以参考带有索引的元组来获取值。您可以这样做:

print("PLAYER:\t\tSCORE:")
for i in names_and_scores[:5]:
    print("{}\t\t{}".format(i[0],i[1]))

这将遍历列表的所需部分(似乎一直排到第五位),然后打印类似...

PLAYER:    SCORE:
Jack's     12
Fred's     13

您可以忽略带有...的

print("PLAYER:\t\tSCORE:")
    for i in names_and_scores[:5]:
        print("{}\t\t{}".format(i[0][:-2],i[1]))

这是我的代码和输出:

list = [("fred's", 13), ("jack's", 19), ("mark's", 16), ("amy's", 12), ("finlay's", 17)]
print("PLAYER:\t\tSCORE")
for i in list:
        print("{}\t\t{}".format(i[0][:-2],i[1]))



PLAYER:         SCORE
fred            13
jack            19
mark            16
amy             12
finlay          17

答案 2 :(得分:0)

我想到的最简单的方法是遍历列表

list=[("fred's", 13), ("jack's", 19), ("mark's", 16), ("amy's", 12), ("finlay's", 17)]
for item in list:
    name,number=item
    print(name,number)