【发布时间】:2022-01-15 14:36:12
【问题描述】:
使用 Python3
对于给定的交易数组,按项目名称对所有交易进行分组。返回一个字符串数组,其中每个字符串包含项目名称,后跟一个空格和关联交易的数量。
注意:对数组按交易计数降序排序,然后对匹配交易计数的项目按项目名称的字母顺序升序。
示例
transactions = ['notebook', 'notebook', 'mouse', 'keyboard', 'mouse']
有两个项目,每个项目有 2 个事务:“笔记本”和“鼠标”。按字母顺序,它们是“鼠标”、“笔记本”。 有一项具有 1 笔交易:“键盘”。 按要求排序的返回数组为['mouse 2', 'notebook 2', 'keyboard 1']
我有什么
def get_trans(lst):
ans = {}
for i in lst:
ans[i] = ans.get(i, 0) + 1
return ans
dictionary = get_trans(transactions)
print(dictionary)
{'notebook' : 2, 'mouse' : 2, 'keyboard' : 1}
data = list(dictionary.items())
an_array = np.array(data)
print(an_array)
当前输出:'notebook' 出现在 'mouse' 之前,字数/计数分开字符串
[['notebook' '2']
['mouse' '2']
['keyboard' '1']]
期望的输出:'notebook' 按字母顺序排列在'mouse'之后,字数/计数是一个字符串
['mouse 2', 'notebook 2', 'keyboard 1']
【问题讨论】:
-
这似乎是一个家庭作业问题。让我们知道您已经尝试过什么并提出更具体的问题。
-
你想知道我尝试了什么。其他人编辑了我尝试过的内容。我们绕着绕着走
-
然后把问题改得更具体一些,你在哪个部分有问题?这个问题要求多方面的东西。不要仅列出您遇到问题的所有要求。如果您愿意,可以创建一个新问题。
-
@VikashBalasubramanian 见上文编辑
-
一个简单的错误/错别字 - 你想要
ans.get(i, 0) + 1而不是ans.get(0, 1) + 1
标签: python string list grouping counter