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

13 fragments de code Python très utiles, favoris!

編輯:Python

Auteur | Radis

Source: | Ragoût de radis

Aujourd'hui, nous nous concentrons sur les applications génériques Python Fragment de code,Allons - y ensemble.

Lists Snippets

Commençons par une liste des structures de données les plus couramment utilisées

№1:Fusionner les deux listes dans un dictionnaire

Supposons que nous soyons Python Il y a deux listes,Nous voulons les combiner dans un dictionnaire,Un des éléments de la liste sert de clé pour le Dictionnaire,L'autre comme valeur.Ça marche. Python Un problème très courant avec l'écriture de code

Mais pour résoudre ce problème,,Nous devons réfléchir à quelques limites,Comme la taille de deux listes,Types d'éléments dans les deux listes,Et s'il y a des éléments en double,Surtout les éléments que nous utilisons comme key Heure.Nous pouvons utiliser zip Attendez que les fonctions intégrées résolvent ces problèmes

keys_list = ['A', 'B', 'C']
values_list = ['blue', 'red', 'bold']
#There are 3 ways to convert these two lists into a dictionary
#1- Using Python's zip, dict functionz
dict_method_1 = dict(zip(keys_list, values_list))
#2- Using the zip function with dictionary comprehensions
dict_method_2 = {key:value for key, value in zip(keys_list, values_list)}
#3- Using the zip function with a loop
items_tuples = zip(keys_list, values_list) 
dict_method_3 = {} 
for key, value in items_tuples: 
    if key in dict_method_3: 
        pass # To avoid repeating keys.
    else: 
        dict_method_3[key] = value

№2: Fusionner deux listes ou plus en une liste contenant des listes

Une autre tâche courante est lorsque nous avons deux listes ou plus ,Nous voulons les rassembler tous dans une grande liste,Tous les premiers éléments d'une liste plus petite forment la première liste d'une liste plus grande

Par exemple,Si nous avions 4 Liste (s) [1,2,3], ['a','b','c'], ['h','e','y'] Et [4,5, 6],Nous voulons créer une nouvelle liste pour ces quatre listes;Ce sera [[1,'a','h',4], [2,'b','e',5], [3,'c','y',6]]

def merge(*args, missing_val = None):
#missing_val will be used when one of the smaller lists is shorter tham the others.
#Get the maximum length within the smaller lists.
  max_length = max([len(lst) for lst in args])
  outList = []
  for i in range(max_length):
    result.append([args[k][i] if i < len(args[k]) else missing_val for k in range(len(args))])
  return outList

№3:Trier la liste des dictionnaires

Cet ensemble de tâches de liste quotidienne est une tâche de tri , Selon le type de données de l'élément contenu dans la Liste ,Nous allons les trier un peu différemment.

dicts_lists = [
  {
    "Name": "James",
    "Age": 20,
  },
  {
     "Name": "May",
     "Age": 14,
  },
  {
    "Name": "Katy",
    "Age": 23,
  }
]
#There are different ways to sort that list
#1- Using the sort/ sorted function based on the age
dicts_lists.sort(key=lambda item: item.get("Age"))
#2- Using itemgetter module based on name
from operator import itemgetter
f = itemgetter('Name')
dicts_lists.sort(key=f)

№4:Trier la liste des chaînes

Nous sommes souvent confrontés à des listes contenant des chaînes,Il nous faut l'ordre alphabétique、La longueur ou tout autre facteur que nous voulons ou dont notre application a besoin pour trier ces listes

my_list = ["blue", "red", "green"]
#1- Using sort or srted directly or with specifc keys
my_list.sort() #sorts alphabetically or in an ascending order for numeric data 
my_list = sorted(my_list, key=len) #sorts the list based on the length of the strings from shortest to longest. 
# You can use reverse=True to flip the order
#2- Using locale and functools 
import locale
from functools import cmp_to_key
my_list = sorted(my_list, key=cmp_to_key(locale.strcoll))

№5:Trier la liste par une autre liste

Parfois, Nous pourrions avoir besoin d'utiliser une liste pour trier une autre liste ,Donc,,Nous aurons une liste de nombres(Index) Et une liste que nous voulons trier avec ces index

a = ['blue', 'green', 'orange', 'purple', 'yellow']
b = [3, 2, 5, 4, 1]
#Use list comprehensions to sort these lists
sortedList =  [val for (_, val) in sorted(zip(b, a), key=lambda x: \
          x[0])]

№6:Mapper la liste dans le Dictionnaire

La dernière tâche du fragment de code de liste ,Si vous donnez une liste et la cartographiez dans un dictionnaire,C'est - à - dire, Nous voulons convertir notre liste en dictionnaire avec des touches numériques

mylist = ['blue', 'orange', 'green']
#Map the list into a dict using the map, zip and dict functions
mapped_dict = dict(zip(itr, map(fn, itr)))

Dictionary Snippets

Le type de données actuellement traitées est un dictionnaire

№7:Fusionner deux dictionnaires ou plus

Supposons que nous ayons deux dictionnaires ou plus,Et nous voulons tous les fusionner en un dictionnaire avec une clé unique

from collections import defaultdict
#merge two or more dicts using the collections module
def merge_dicts(*dicts):
  mdict = defaultdict(list)
  for dict in dicts:
    for key in dict:
      res[key].append(d[key])
  return dict(mdict)

№8:Inverser le Dictionnaire

Une tâche très courante du dictionnaire est si nous avons un dictionnaire et que nous voulons inverser ses clés et ses valeurs ,La clé deviendra une valeur,Et la valeur devient la clé

Quand on fait ça, Nous devons nous assurer qu'il n'y a pas de clés dupliquées .Les valeurs peuvent être répétées,Mais la clé ne peut pas, Et assurez - vous que toutes les nouvelles clés sont OK hashable De

my_dict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
#Invert the dictionary based on its content
#1- If we know all values are unique.
my_inverted_dict = dict(map(reversed, my_dict.items()))
#2- If non-unique values exist
from collections import defaultdict
my_inverted_dict = defaultdict(list)
{my_inverted_dict[v].append(k) for k, v in my_dict.items()}
#3- If any of the values are not hashable
my_dict = {value: key for key in my_inverted_dict for value in my_inverted_dict[key]}

String Snippets

Ensuite, le traitement des chaînes

№9:Utiliser f String

Formater une chaîne peut être une tâche que nous devons accomplir presque tous les jours ,In Python Il y a plusieurs façons de formater une chaîne,Utiliser f Les chaînes sont un meilleur choix

#Formatting strings with f string.
str_val = 'books'
num_val = 15
print(f'{num_val} {str_val}') # 15 books
print(f'{num_val % 2 = }') # 1
print(f'{str_val!r}') # books
#Dealing with floats
price_val = 5.18362
print(f'{price_val:.2f}') # 5.18
#Formatting dates
from datetime import datetime;
date_val = datetime.utcnow()
print(f'{date_val=:%Y-%m-%d}') # date_val=2021-09-24

№10:Vérifier les substrats

Une tâche très courante est de vérifier si la chaîne est dans la liste des chaînes

addresses = ["123 Elm Street", "531 Oak Street", "678 Maple Street"]
street = "Elm Street"
#The top 2 methods to check if street in any of the items in the addresses list
#1- Using the find method
for address in addresses:
    if address.find(street) >= 0:
        print(address)
#2- Using the "in" keyword 
for address in addresses:
    if street in address:
        print(address)

№11:Obtient la taille de la chaîne en octets

Parfois,Surtout lors de la construction d'applications essentielles à la mémoire,Nous devons savoir combien de mémoire notre chaîne utilise

str1 = "hello"
str2 = ""
def str_size(s):
  return len(s.encode('utf-8'))
str_size(str1)
str_size(str2)

Input/ Output operations

Enfin, regardons le fragment de code d'entrée / sortie

№12:Vérifier si le fichier existe

Dans la science des données et de nombreuses autres applications,Nous avons souvent besoin de lire ou d'écrire des données à partir d'un fichier,Mais pour ce faire,,Nous devons vérifier si le fichier existe,Donc,, Nous devons nous assurer que le Code ne IO Terminé par erreur

#Checking if a file exists in two ways
#1- Using the OS module
import os 
exists = os.path.isfile('/path/to/file')
#2- Use the pathlib module for a better performance
from pathlib import Path
config = Path('/path/to/file') 
if config.is_file(): 
    pass

№13:Analyser le tableur

Une autre interaction de fichiers très courante est l'analyse des données à partir d'un tableur,Nous utilisons CSV Module pour nous aider à accomplir cette tâche efficacement

import csv
csv_mapping_list = []
with open("/path/to/data.csv") as my_data:
    csv_reader = csv.reader(my_data, delimiter=",")
    line_count = 0
    for line in csv_reader:
        if line_count == 0:
            header = line
        else:
            row_dict = {key: value for key, value in zip(header, line)}
            csv_mapping_list.append(row_dict)
        line_count += 1

C'est bon,On a étudié ensemble. 13 Fragments de code, Ces fragments sont simples 、 Bref et efficace , Quel que soit le domaine d'application dans lequel nous travaillons , Et ils finiront par être Python Utiliser au moins un des éléments du projet , La collection est donc le meilleur choix. !

Rétrospective

NLP Pratique de la modélisation des problèmes de classe

Python Algorithme de chiffrement commun dans crawler !

2DChangez - vous.3D, Venez voir invista AI“Nouveau”La magie.!

C'est bon.Python Plusieurs structures de données communes !

Partager
Collection de points
Un peu.
Regarde.

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