Comments (3)
Thanks for the suggestions. Both seem valid. I'm assigning this to you, you can open a PR whenever you have the time.
from 30-seconds-of-python.
Hi, here is a different approach to count an element's occurrence in a list using list comprehension
and lambda functions
.
lst = [1, 2, 3, 4, 9, 2, 2, 1, "apple", "ball", "apple"]
elementToBeSearched = 2
print(len(list(filter(lambda x : x == elementToBeSearched, l))))
from 30-seconds-of-python.
@veronicaguo the collections
module contains the class Counter
intended exactly for this purpose. You can use
count = collections.Counter()
instead of
count = collections.defaultdict(int)
or you can even initialize the counter directly from the iterable and the function will consist of a single expression:
import collections
def count_by(iter1, map1=lambda x: x):
return dict(collections.Counter(map(map1, iter1)))
@JahnaviChitta There is no need to first create the list and then to count it (it could be really bad if it had millions of items). This code is counting the items directly:
sum(1 for x in filter(lambda x : x == elementToBeSearched, lst))
...and Python generator expressions are much more powerful. The filtering can be part of the same expression:
sum(1 for x in lst if x == elementToBeSearched)
...but anyway for the solution to be efficient in most cases it has to count the all the values in a single pass like do the original functions above.
from 30-seconds-of-python.
Related Issues (20)
- Improving `sum_of_powers` snippet HOT 2
- Can I add a string_chunk HOT 4
- time complexity improv of frequencies.md HOT 4
- improvement in fibbonocci code HOT 1
- Making median code a bit more precise. HOT 1
- List of possible snippets HOT 4
- xor HOT 1
- without HOT 1
- Selecting a random element from a given sequence HOT 1
- Improvement in time complexity. HOT 1
- Some suggestions to improve `bifurcate`, `find_last_index` and more HOT 5
- Issue in `byte_size` snippets
- New snippet circular rotate
- Removed the hacktoberfest label? :/ HOT 1
- combine_values.md Sample code output is incorrect
- reverse_number Wrong output HOT 1
- bug :num_to_range
- optimization:unfold HOT 1
- Active & accepting PRs for Hacktoberfest 2021? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from 30-seconds-of-python.