程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Life is short, five Python tips to save life

編輯:Python

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 .

This article introduces the common 5 individual python Tips :

  • String manipulation
  • The list of deduction
  • lambda And map() function
  • if、elif and else Single line expression
  • zip() function

1、 String manipulation

Python Good at using mathematical operators ( Such as + and *) Operate on strings : - + String concatenation - * Duplicate string

# Python Exchange of learning 1 skirt 815624229 ### 
# Python Exchange of learning 2 skirt 279199867 ###
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 !

2、 The list of deduction

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 a list to derive , 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]

Syntax for list derivation :[ 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]

3、Lambda & Map function

Lambda

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 anonymous function . 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 function

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]

4、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 be done in one line of code :

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 .

5、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 , An include name , One with last name , 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']

Section

Listed above 5 A quick tip , I hope it works for you .

If you think it's ok , Give us a free attention + Collect it

thank !!!


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved