【问题标题】:How to print duplicated items of a list as numbers? [closed]如何将列表的重复项打印为数字? [关闭]
【发布时间】:2021-06-30 05:33:19
【问题描述】:

所需的输出 1:

假设我有一个这样的列表:

my_list = ['car', 'car', 'truck', 'van', 'car', 'truck', 'van']

我有三辆汽车、两辆货车和两辆卡车。有没有办法像这样打印列表项目的输出:

3 cars
2 trucks
2 vans

期望的输出 2:

还有其他方法可以删除用户所说的汽车数量:

How many cars do you want to remove?: 2
1 car
2 trucks
2 vans

这些是我的问题。如何使用最少的代码在 Python 中做到这一点?

我同意这个问题有一个重复,但那些没有解释如何根据用户输入从我的列表中删除项目。

【问题讨论】:

  • 使用字典来存储每辆车的出现次数,并使用 for 循环在您的列表上进行迭代以增加这些出现次数。
  • 我该怎么做? @qouify
  • 部分重复:How can I count the occurrences of a list item? 一旦你有了Counter,你可以简单地减去。

标签: python python-3.x list duplicates


【解决方案1】:

所需输出 1:

list 方法,查看它的简单方法是.count()

试试看here

cars-count = my_list.count("car")

所需的输出 2:

您希望在运行删除项目时更新列表吗?还是只是价值观?

即当您运行How many cars do you want to remove?: 1 时,列表将如下所示

my_list = ['car', 'truck', 'van', 'car', 'truck', 'van']

【讨论】:

  • 是的,我确实希望更新列表。 @twoscoops
  • cars-count 是无效的变量名
  • 对于第 2 部分,这并不能回答问题。一旦你有足够的reputation,你就可以在帖子上留下 cmets 要求澄清。顺便说一句,欢迎来到 SO!请拨打tour,如果您想了解更多提示,请查看How to Answer
【解决方案2】:

问题一:

您可以使用 Counter 来实现:

from collections import Counter

my_list = ['car', 'car', 'truck', 'van', 'car', 'truck', 'van']
count_dict = Counter(my_list)  # Return a dictionary

for key, value in count_dict.items():
    print(value, key)

输出:

3 car
2 truck
2 van

问题 2:

你可以循环传递remove函数:

number_of_occurances = 1
string_to_remove = 'car'

for number in range(number_of_occurances):
    my_list.remove(string_to_remove)
    
print(my_list)

输出:

['car', 'truck', 'van', 'car', 'truck', 'van']

【讨论】:

  • 请注意 Counterdict 的子类,而不是 dict 本身。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-23
  • 2021-08-06
  • 1970-01-01
  • 2022-08-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多