python - 迭代列表并将输出存储在新列表中的更好方法
问题描述
我是 python 的初学者,我希望您对编写以下代码的更复杂的方式提出意见。我希望代码遍历整个项目列表 (x),计算每个项目出现的次数并将输出存储在新列表 (z) 中。这是代码(按原样工作):
x = ["apple", "orange", "cherry", "apple"]
def new_list(a):
z=[]
for i in x:
y = x.count(i)
(z.append(y))
return z
print(new_list(x))
解决方案
我建议做一个列表理解:
>>> x = ["apple", "orange", "cherry", "apple"]
>>> [x.count(val) for val in x]
[2, 1, 1, 2]
>>>
甚至更好map
:
>>> [*map(x.count, x)]
[2, 1, 1, 2]
>>>
推荐阅读
- javascript - 根据下拉列表中选择的用户id获取全日历中员工的上班时间和下班时间
- .htaccess - 子目录中的 codiad 导致错误 500
- javascript - 在语音识别中使用关键字来触发事件
- javascript - JS 崩溃没有正确显示我的内容
- powerbi - Power BI >> 应用程序未显示图像
- typescript - ask-sdk V2 中 Request 类型的类型定义不完整
- angular - Angular Material - 带图像的 mat-optgroup
- javascript - 无法检索隐藏字段值
- php - 从服务器检索数据花费了太多时间
- javascript - 量角器,如何选择href内的链接