What are some very practical Python skills?

WBOY
Release: 2023-05-12 17:34:19
forward
611 people have browsed it

1. Uniqueness

The following method can check whether there are duplicates in a given list, and use the set() attribute to delete them from the list.

x = [1,1,2,2,3,2,3,4,5,6]
y = [1,2,3,4,5]
len(x)== len(set(x)) # False
len(y)== len(set(y)) # True
Copy after login

2. Anagrams (words with the same letters in different orders)

This method can be used to check whether two strings are anagrams.

from collections import Counter
>>> Counter('abadfsdafsdfjsdaf')
Counter({'a': 4, 'd': 4, 'f': 4, 's': 3, 'b': 1, 'j': 1})

def anagram(first, second):
    return Counter(first) == Counter(second)
anagram("abcd3", "3acdb") # True
Copy after login

3. Memory

This code snippet can be used to check the memory usage of an object.

import sys 
variable = 30 
print(sys.getsizeof(variable)) # 28
Copy after login

4. Byte size

This method can output the byte size of the string.

print(len(''.encode('utf-8')))# 0
print(len('hellow sdfsdaf'.encode('utf-8'))) # 14
Copy after login

5. Print a string N times

This code segment can print a string multiple times without looping.

n = 2; 
s ="Programming"; 
print(s * n); # ProgrammingProgramming
Copy after login

6. Capitalize the first letter

The following code snippet only uses title() to capitalize the first letter of each word in the string.

s = "programming is awesome"
print(s.title()) # Programming Is Awesome
Copy after login

7. List subdivision

This method subdivides the list into lists of a specific size.

>>> list = list(range(12))
>>> size=3
>>> [list[i:i+size] for i in range(0,len(list), size)]
[[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11]]
>>>
Copy after login

8. Compression

The following code uses filter() to remove error values ​​(False, None, 0 and " ") from the list.

list(filter(bool, [0, 1, False, 2, '', 3, 'a', 's', 34]))
Copy after login

9. Counting

The following code can be used to swap the 2D array arrangement.

array = [['a', 'b'], ['c', 'd'], ['e', 'f']]
transposed = zip(*array)
print(transposed)  # [('a', 'c', 'e'), ('b', 'd', 'f')]
Copy after login

10. Chain comparison

The following code can perform multiple comparisons on various operators.

a = 3
print( 2 < a < 8) # True
print(1 == a < 2) # False
Copy after login

11. Comma separated

This code snippet converts a list of strings into a single string while separating each element in the list with a comma.

hobbies = ["basketball", "football", "swimming"]
print("My hobbies are: " + ", ".join(hobbies)) # My hobbies are: basketball, football, swimming
Copy after login

12. Vowel counting

This method can count the number of vowels ("a", "e", "i", "o", "u") in the string .

import re
print(len(re.findall(r&#39;[aeiou]&#39;, &#39;foobar&#39;, re.IGNORECASE)))   # 3
print(len(re.findall(r&#39;[aeiou]&#39;, &#39;gym&#39;, re.IGNORECASE)))   # 0
Copy after login

13. The first letter is lowercase

This method converts the first letter of the given string into lowercase mode.

&#39;FooBar&#39;[:1].lower() + &#39;FooBar&#39;[1:] # &#39;fooBar&#39;
&#39;FooBar&#39;[:1].lower() + &#39;FooBar&#39;[1:]   # &#39;fooBar&#39;
Copy after login

14. Expand the list

The following code uses a recursive method to expand a potentially deep list.

def spread(arg):
    ret = []
    for i in arg:
        if isinstance(i, list):
            ret.extend(i)
    else:
        ret.append(i)
    return ret

def deep_flatten(lst):
    result = []
    result.extend(
        spread(list(map(lambda x: deep_flatten(x) if type(x) == list else x, lst))))
    return result
deep_flatten([1, [2], [[3], 4], 5])  # [1,2,3,4,5]
print(deep_flatten([1, [2], [[3], 4], 5]))  # [1,2,3,4,5]
Copy after login

15. Find the difference

This method keeps only the values ​​in the first iteration to find the difference between the two iterations

set([1,2,3])-set([1,2,4]) # [3]
Copy after login

16. Output the difference

The following method uses existing functions to find and output the difference between two lists.

def difference_by(a, b, fn):
    b = set(map(fn, b))
    return [item for item in a if fn(item) not in b]
from math import floor
difference_by([2.1, 1.2], [2.3, 3.4],floor) # [1.2]
difference_by([{ &#39;x&#39;: 2 }, { &#39;x&#39;: 1 }], [{ &#39;x&#39;: 1 }], lambda v : v[&#39;x&#39;]) # [ { x: 2 } ]
Copy after login

17. Chain function call

The following method can call multiple functions in one line

def add(a, b):
    return a + b
def subtract(a, b):
    return a – b
a, b = 4, 5
print((subtract if a > b else add)(a, b)) # 9
Copy after login

18.

In Python3.5 and In the upgraded version, you can also execute the step code in the following way:

def merge_dictionaries(a, b):
    return {**a, **b}
a = { &#39;x&#39;: 1, &#39;y&#39;: 2}
b = { &#39;y&#39;: 3, &#39;z&#39;: 4}
print(merge_dictionaries(a, b)) # {&#39;y&#39;: 3, &#39;x&#39;: 1, &#39;z&#39;: 4}
Copy after login

19. Convert two lists into fonts

The following method can convert two lists into fonts.

keys = ["a", "b", "c"] 
values = [2, 3, 4]
print(dict(zip(keys, values))) # {&#39;a&#39;: 2, &#39;c&#39;: 4, &#39;b&#39;: 3}
Copy after login

20. The element with the highest frequency of occurrence

This method will output the element with the highest frequency of appearance in the list.

def most_frequent(list):
    return max(set(list), key = list.count)
list = [1,2,1,2,3,2,1,4,2]
most_frequent(list)
Copy after login

21. Palindrome (the same string is read forward and backward)

The following code checks whether the given string is a palindrome. First convert the string to lowercase, then remove non-alphabetic characters from it, and finally compare the new string version to the original version.

def palindrome(string):
    from re import sub
    s = sub(&#39;[\W_]&#39;, &#39;&#39;, string.lower())
    return s == s[::-1]
palindrome(&#39;taco cat&#39;) # True
Copy after login

22. Calculator without if-else statements

The following code snippet shows how to write a simple calculator without if-else conditional statements.

import operator
action = {
 "+": operator.add,
 "-": operator.sub,
 "/": operator.truediv,
 "*": operator.mul,
 "**": pow
}
print(action[&#39;-&#39;](50, 25)) # 25
Copy after login

23. Random sorting

This algorithm uses the Fisher-Yates algorithm to randomly sort the elements in the new list.

from copy import deepcopy
from random import randint

def shuffle(lst):
    temp_lst = deepcopy(lst)
    m = len(temp_lst)
    while (m):
        m -= 1
    i = randint(0, m)
    temp_lst[m], temp_lst[i] = temp_lst[i], temp_lst[m]
    return temp_lst

foo = [1, 2, 3]
shuffle(foo)  # [2,3,1] , foo = [1,2,3]
Copy after login

24. Expand the list

This method can only expand 2 levels of nested lists, not more than 2 levels

def spread(arg):
    ret = []
    for i in arg:
        if isinstance(i, list):
            ret.extend(i)
        else:
            ret.append(i)
    return ret
spread([1, 2, 3, [4, 5, 6], [7], 8, 9])  # [1,2,3,4,5,6,7,8,9]
print(spread([1, 2, 3, [4, 5,[10,11,12,132,4,[1,2,3,4,5,6]], 6], [7], 8, 9]))  #[1, 2, 3, 4, 5, [10, 11, 12, 132, 4, [1, 2, 3, 4, 5, 6]], 6, 7, 8, 9]
Copy after login

The above is the detailed content of What are some very practical Python skills?. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:yisu.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template