Comments (7)
Sounds great, can you write a draft for this (have a look at a rst
file to see how the anti-patterns are structured)?
from python-anti-patterns.
For sure, here's a draft of it: https://gist.github.com/AN3223/344d27279be6ee87e13c5fadf1af756d
Apologies for the procrastination!
from python-anti-patterns.
The best for this example would be to use:
xs=(1, 2, 3, 4)
xs=[*xs]
xs # [1,2,3,4]
as []
is faster than list()
from python-anti-patterns.
I'm not sure about that:
$ python3 -m timeit -n 1000 -s 'x = range(1000000)' -- 'list(x)'
1000 loops, best of 5: 68.1 msec per loop
$ python3 -m timeit -n 1000 -s 'x = range(1000000)' -- '[*x]'
1000 loops, best of 5: 68.3 msec per loop
FWIW, I would probably consider list()
more readable anyways.
from python-anti-patterns.
@tucked, let it got with the list()
, my tip was based on https://stackoverflow.com/questions/30216000/why-is-faster-than-list analysis.
from python-anti-patterns.
Yes, but I suspect after a certain point, as in my example, overhead is essentially negligible compared iteration over x
. Even at small scale, I would not consider the performance boost significant enough to warrant the sacrifice of readability:
$ python3 -m timeit -n 1000000 -s 'x = range(1000)' -- '[*x]'
1000000 loops, best of 5: 44.7 usec per loop
$ python3 -m timeit -n 1000000 -s 'x = range(1000)' -- 'list(x)'
1000000 loops, best of 5: 57.2 usec per loop
I would call this premature optimization, but, you know, that's just, like, my opinion, man.
from python-anti-patterns.
@tucked, using list()
is just fine. :)
from python-anti-patterns.
Related Issues (20)
- PDF link from previous issue not working HOT 2
- Is there some process for translation?
- Calling LBYL an anti-pattern is not exactly correct
- Logging anti-patterns
- Method could be a function HOT 2
- Headline "Test for object identity should be is" doesn't match content
- Using map() or filter() where list comprehension is possible HOT 1
- The little book of python anti-pattern HOT 1
- Add a reference to flake8-builtins
- Perimeter != Circumference
- Not using with to open files - what about pathlib's read_text HOT 2
- Clarify why comparing things to none is discouraged HOT 1
- nvm HOT 1
- Drop the section for Django 1.8
- NullBooleanField is deprecated HOT 2
- Question Regarding Global Statements
- Use f-string when formatting strings
- "Using key in list to check if key is contained in list" -- Nitpick HOT 2
- One of the examples uses the 'list' anti-pattern
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 python-anti-patterns.