【发布时间】:2020-10-13 16:14:14
【问题描述】:
我今天尝试学习字典和集合,但我不知道如何正确使用join。
brandin = []
for x in range(int(input("New brand total: "))):
brand = input("Brand Name: ")
brandin.append(brand)
brandinset = set(brandin)
print("list: ", ', '.join(brandin))
print("set: ", ', '.join(brandinset))
brandtotal = {}
for brand in brandin:
if brand in brandtotal:
brandtotal[brand] += 1
else:
brandtotal[brand] = 1
print((brandtotal))
这是输出:
New brand total: 7
Brand Name: nike
Brand Name: adidas
Brand Name: nike
Brand Name: vans
Brand Name: adidas
Brand Name: nb
Brand Name: puma
list: nike, adidas, nike, vans, adidas, nb, puma
set: nike, vans, puma, nb, adidas
{'nike': 2, 'adidas': 2, 'vans': 1, 'nb': 1, 'puma': 1}
我如何制作{'nike': 2, 'adidas': 2, 'vans': 1, 'nb': 1, 'puma': 1}
变得像nike: 2, adidas: 2, vans: 1, nb: 1, puma: 1
我尝试使用join,但它删除了值。
【问题讨论】:
-
一个选项:
print(','.join(f"{key}: {value}" for key,value in brandtotal.items())) -
@JohnnyMopp 谢谢!!!!顺便说一句 f 在那里做什么??
-
这是一个f-string。一种更简单的格式化字符串的方法。您也可以使用
format()或字符串连接,但我更喜欢 f-strings。 -
@JohnnyMopp 评论的附录(这似乎应该是一个答案):如果您只是
printing 它,并且不需要完整的字符串存在于内存中,您可以这样做:print(*(f"{k}: {v}" for k, v in brandtotal.items()), sep=', ')并让print代表您处理打印各个项目并插入分隔符。
标签: python python-3.x dictionary set