Python Is a powerful and easy to use language , The grammar is simple and elegant , Unlike Java Such tedious nonsense , And there are some special functions or syntax that can make the code shorter and more concise .
According to the author's experience , The following describes the commonly used 5 individual python Tips :
String manipulation
The list of deduction
lambda
And map()
function
if
、elif
and else
Single line expression
zip()
function
Python Good at using mathematical operators ( Such as +
and *
) Operate on strings :
+
String concatenation
*
Duplicate string
my_string = "Hi Python..!"
print(my_string * 2)
#Hi Python..!Hi Python..!
print(my_string + " I love Python" * 2)
#Hi Python..! I love Python I love Python
It can also be sliced [::-1]
Easily invert a string , And not limited to strings ( Such as list flip )!
my_string = "Hi Python..!"
print(my_string[::-1])
# !..nohtyP iH
my_list = [1,2,3,4,5]
print(my_list[::-1])
# [5, 4, 3, 2, 1]
The following is a list of words reversed and spliced into a string :
word_list = ["awesome", "is", "this"]
print(' '.join(word_list[::-1]) + '!')
#this is awesome!
use .join()
Method ,''
( Space ) Connect and reverse all words in the list , And add an exclamation point !
.
The list of deduction , A technique that can change your world view ! This is a very powerful 、 Intuitive and readable methods , You can quickly operate on the list .
hypothesis , There is a random function , Returns the square of a number and adds 5
:
def stupid_func(x):
return x**2 + 5
Now? , I want to put the function stupid_func()
Applies to all odd numbers in the list , If you don't use list derivation , The stupid way is as follows :
def stupid_func(x):
return x**2 + 5
my_list = [1, 2, 3, 4, 5]
new_list = []
for x in my_list:
if x % 2 != 0:
new_list.append(stupid_func(x))
print(new_list)
#[6, 14, 30]
If you use The list of deduction , The code becomes elegant in an instant :
def stupid_func(x):
return x**2 + 5
my_list = [1, 2, 3, 4, 5]
print([stupid_func(x) for x in my_list if x % 2 != 0])
#[6, 14, 30]
The list of deduction The grammar of :[ expression for item in list ]
, If you don't think it's fancy enough , You can also add a judgment condition , Like the one above " Odd number " Conditions : [expression for item in list if conditional]
. Essentially, the function of the following code :
for item in list:
if conditional:
expression
Very Cool!. But you can go further , Directly omit stupid_func()
function :
my_list = [1, 2, 3, 4, 5]
print([x ** 2 + 5 for x in my_list if x % 2 != 0])
#[6, 14, 30]
Lambda
& Map
function Lambda
It looks a little strange , But strange things are generally powerful , Once you master it, it's intuitive , Save a lot of nonsense code .
Basically ,Lambda
Function is a small Of Anonymous functions . Why anonymous ?
because Lambda
The simple operations most often used to perform , But it doesn't need to be like this def my_function()
That's serious , therefore Lambda
Also known as dangling function ( Fabricate , Ignore and ignore ).
Improve the above example :def stupid_func(x)
You can use one line Lambda
Instead of a function :
stupid_func = (lambda x : x ** 2 + 5)
print([stupid_func(1), stupid_func(3), stupid_func(5)])
#[6, 14, 30]
So why use this strange Syntax ? When you want to do some simple operations without defining the actual function , This becomes very useful .
Take a list of numbers as an example . Suppose you sort the list ? One way is to use sorted()
Method :
my_list = [2, 1, 0, -1, -2]
print(sorted(my_list))
#[-2, -1, 0, 1, 2]
sorted()
Function can complete sorting , But suppose you want to sort by the square of each number ? Available at this time lambda
Function to define the sort key key
, This is also sorted()
Method to determine how to sort :
my_list = [2, 1, 0, -1, -2]
print(sorted(my_list, key = lambda x : x ** 2))
#[0, -1, 1, -2, 2]
map
yes python Built in functions , The specified sequence will be mapped according to the provided function . Suppose there is a list , Want to multiply each element in a list by the corresponding element in another list , How to do this ? Use lambda
Functions and map
!
print(list(map(lambda x, y : x * y, [1, 2, 3], [4, 5, 6])))
#[4, 10, 18]
With the following conventional nonsense code , Simple and elegant :
x, y = [1, 2, 3], [4, 5, 6]
z = []
for i in range(len(x)):
z.append(x[i] * y[i])
print(z)
#[4, 10, 18]
if-else
Single line expression Somewhere in your code , There may be such nonsense conditional statements :
x = int(input())
if x >= 10:
print("Horse")
elif 1 < x < 10:
print("Duck")
else:
print("Baguette")
When you run a program , Prompt from input()
Enter a message in the function , Such as input 5
, obtain Duck
. But it can also One line of code Finish the whole thing :
print("Horse" if x >= 10 else "Duck" if 1 < x < 10 else "Baguette")
One line of code is simple and direct ! Look through your old code , You will find that many judgments can be reduced to one if-else
Single line expression .
zip()
function Remember map()
Are the two list elements in the function part multiplied by bits ?
zip()
Make it easier . Suppose there are two lists , A contain name , A contain surname , How to merge them orderly ? Use zip()
!
first_names = ["Peter", "Christian", "Klaus"]
last_names = ["Jensen", "Smith", "Nistrup"]
print([' '.join(x) for x in zip(first_names, last_names)])
#['Peter Jensen', 'Christian Smith', 'Klaus Nistrup']
Listed above 5 A quick tip , I hope it works for you .
Recommended reading
Thousands of Python Class library , It's so cool !
10 That's ok Python What interesting things code can do ?
python Realize automatic login of campus network