Общественный номер: You Er Hut
Автор: Питер
Редактор: Питер
Всем привет, меня зовут Питер~
Python известен своим лаконичным синтаксисом. В процессе изучения Python мы всегда обнаруживаем, что Python может легко помочь нам решить множество проблем.
Иногда, казалось бы, сложные задачи можно решить даже с помощью одной строки кода Python.
Ниже Питер познакомит вас с 40 интересными и практичными строками кода Python, давайте вместе почувствуем мощь Python~
распечатать привет питон
Все начинают с функции печати
print("hello python")
hello python
print("hello Peter")
hello Peter
print("数据分析师")
数据分析师
двоичный в десятичный
int("01110", 2) # 2^3+2^2+2
14
Восьмеричный в десятичный
int("140",8)
96
Шестнадцатеричный в десятичный
int("ac1",16)
2753
Создать список последовательных значений
list(range(9))
[0, 1, 2, 3, 4, 5, 6, 7, 8]
Гауссово суммирование
Одна строка кода для нахождения суммы гауссианов: найдите сумму всех чисел от 1 до 100
sum(range(1,101)) # range函数不包含101
5050
Найдите сумму нечетных и четных чисел
# 除以2余数为0表示偶数
sum(i for i in range(1,101) if i % 2 == 0)
2550
# 除以2余数不为0表示奇数
sum(i for i in range(1,101) if i % 2 != 0)
2500
факториал
import math # 需要借助第三方的库
math.factorial(6) # 6*5*4*3*2*1
720
Транспонирование матрицы
Транспонирование матрицы - это преобразование строк и столбцов матрицы.
list1 = [[1,4,7], [2,5,8], [3,6,9]] # 定义一个嵌套列表
list(list(x) for x in zip(*list1)) # list函数实现
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
[list(x) for x in zip(*list1)] # [] 符号实现
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
for x in zip(*list1):
print(list(x))
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
Слияние вложенных списков
Объединение нескольких списков в один большой список
list4 = [[1,2,3],[4,5,6],[7,8,9]] # 定义一个列表
list(item for list5 in list4 for item in list5) # 从大到小
[1, 2, 3, 4, 5, 6, 7, 8, 9]
слияние списка
a = [1,2,3]
b = [4,5,6]
a.extend(b)
a
[1, 2, 3, 4, 5, 6]
инверсия списка
list6 = [1,2,3,4,5,6,7]
list6[::-1]
[7, 6, 5, 4, 3, 2, 1]
Распаковка списка
h,*i,j = [1,2,3,4,5]
print(h)
print(i)
print(j)
1
[2, 3, 4]
5
дедупликация списка
Преобразовывая список в набор, используйте свойство дедупликации набора, а затем преобразуйте его в список.
list7 = [1,2,3,4,3,2,3,3]
list(set(list7))
[1, 2, 3, 4]
фильтрация списка
Два параметра функции фильтра:
- указать функцию
- Итерируемые объекты для выполнения, каждый из которых выполняет предыдущую функцию
list(filter(lambda x:x % 3 == 0, [1,3,6,7,9,10])) # 找出3的倍数
[3, 6, 9]
понимание списка
[number for number in range(0,11)] # []
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
установить понимание
{number for number in range(0,11)} # {}
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
Объединение коллекций
s1 = {1,2,3}
s2 = {4,5,6}
s1.update(s2)
s1
{1, 2, 3, 4, 5, 6}
понимание словаря
{i:i**3 for i in range(0,5)} # i**3表示i的三次方
{0: 0, 1: 1, 2: 8, 3: 27, 4: 64}
Объединение словарей
d1 = {"name1":"xiaoming","age1": 19}
d2 = {"name2":"xiaoming","age2": 28}
d1.update(d2)
d1
{'name1': 'xiaoming', 'age1': 19, 'name2': 'xiaoming', 'age2': 28}
if-for
# 寻找3的倍数
[number for number in range(0,20) if number % 3 == 0]
[0, 3, 6, 9, 12, 15, 18]
if-else
print("偶数") if 8 % 2 == 0 else ("奇数")
偶数
print("偶数") if 9 % 2 == 0 else print("奇数")
奇数
быстрая сортировка
list2 = [9,5,1,6,2,8] # 定义一个列表
sorted(list2) # 默认升序
[1, 2, 5, 6, 8, 9]
sorted(list2, reverse=True) # 降序
[9, 8, 6, 5, 2, 1]
list3 = ["ac","ab","bb","aa","bc","cd","ca"]
sorted(list3)
['aa', 'ab', 'ac', 'bb', 'bc', 'ca', 'cd']
Во-первых, мы сортируем по ASCII первой буквы, по умолчанию — в порядке возрастания, а — наименьшее. Когда первая буква совпадает, то сортировать по второй букве
Строка в байтах
"string to bytes".encode()
b'string to bytes'
Получите 26 алфавитов
import string
string.ascii_letters # 大小写
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
получить заглавный алфавит
string.ascii_uppercase
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
получить строчные буквы
string.ascii_lowercase
'abcdefghijklmnopqrstuvwxyz'
Преобразование регистра строк
"Hello! My name is Peter".lower() # 转成小写
'hello! my name is peter'
# 转成小写的另一种写法
"Hello! My name is Peter".casefold()
'hello! my name is peter'
"Hello! My name is Peter".upper() # 转成全部大写
'HELLO! MY NAME IS PETER'
"Hello! My name is Peter".title() # 转成首字母大写
'Hello! My Name Is Peter'
найти самую длинную строку
list7 = ["c","html","javascript","java"]
max(list7, key=len) # key参数指定函数
'javascript'
max(list7) # 默认
'javascript'
удалить числа из строки
"".join(list(filter(lambda x: x.isalpha(), "abcde12hk18")))
'abcdehk'
list(filter(lambda x: x.isalpha(), "abcde12hk18"))
['a', 'b', 'c', 'd', 'e', 'h', 'k']
Строки в списке становятся числами
list(map(int, ["10","90","50"]))
[10, 90, 50]
Реверс строки
"python"[::-1]
'nohtyp'
поменять местами переменные
a, b = 5, 8 # 定义两个变量
print("交换前a:",a)
print("交换前b:",b)
交换前a: 5
交换前b: 8
a, b = b, a # 一行代码交换
print("交换后a:",a)
print("交换后b:",b)
交换后a: 8
交换后b: 5
проверка типа данных
isinstance(5,int) # 数值
True
isinstance("python",int)
False
isinstance("python",str) # 字符串
True
isinstance([1,3,6],list) # 列表
True
Последовательность Фибоначчи
fibo = lambda x: x if x <= 1 else fibo(x-1) + fibo(x-2)
fibo(10)
55
Частота слов в статистике
Подсчитайте, сколько раз один символ в строке
"javascript".count("a")
2
"javascript".count("s")
1
"hello".count("l")
2
количество элементов списка
import pandas as pd
list10 = [1,3,4,6,1,2,3,1,1,2,5,6,2]
pd.value_counts(list10)
1 4
2 3
3 2
6 2
4 1
5 1
dtype: int64
Подсчитать количество элементов строки
from collections import Counter
Counter("abcdeabcdabcaba")
Counter({'a': 5, 'b': 4, 'c': 3, 'd': 2, 'e': 1})
подсчитать наибольшее количество элементов
list10 = [1,3,4,6,1,2,3,1,1,2,4,6,2]
max(list10, key=list10.count) # 元素1最多
1
min(list10, key=list10.count) # 元素3最少,只出现一次
3
Текущее время
import time
time.time() # 时间戳形式
1632501677.992713
time.ctime() # 标准形式
'Sat Sep 25 00:41:18 2021'