【问题标题】:how to delete {} but keep the dictionary value如何删除 {} 但保留字典值
【发布时间】: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


【解决方案1】:

你需要使用join()

brandtotal = {'nike': 2, 'adidas': 2, 'vans': 1, 'nb': 1, 'puma': 1}
', '.join(k+': '+str(brandtotal[k]) for k in brandtotal.keys())

输出是这个字符串:

'nike: 2, adidas: 2, vans: 1, nb: 1, puma: 1'

【讨论】:

  • 我建议使用 f-strings 或 str.format,而不是重复的字符串连接(这既难以阅读,又渐进地变慢)。我还建议迭代 .items() 以避免不必要地查找每个键,以更快/更简单的方式结束:', '.join(f'{k}: {v}' for k, v in brandtotal.items())
猜你喜欢
  • 2021-08-09
  • 1970-01-01
  • 2018-06-29
  • 2019-10-27
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
  • 2020-11-10
相关资源
最近更新 更多