Skip to content

实用代码

字符串的翻转

py
str1 = 'abcd efgh'
print(str1[::-1])
# hgfe dcba
py
from functools import reduce

str1 = 'abcd efgh'
print(reduce(lambda x,y:y+x, str1))
# hgfe dcba

单词大小写

py
str1 = 'abcd efgh'
print(str1.title()) # 单词首字母大写
print(str1.upper()) # 所有字母大写
print(str1.capitalize()) # 字符串首字母大写
# Abcd Efgh
# ABCD EFGH
# Abcd efgh

字符串的拆分

py
str1 = 'abcd efgh ijkl'
str2 = 'abcd/efgh/ijkl'
str3 = '   abcd efgh ijkl   '
print(str1.split()) # 默认按 空格 拆分
# ['abcd', 'efgh', 'ijkl']
print(str2.split('/'))
print(str3)
print(str3.strip()) # 去除两头空格
# abcd efgh ijkl

将列表中的字符串合并

py
str1 = ['a', 'b', 'c']
print(''.join(str1))
# abc

字符串首字母大写,其余保持不变

py
str1 = 'aBcDeF'
print("".join(str1[:1].upper() + str1[1:]))
# ABcDeF

过滤字符串

py
import re

str1 = 'abcd/efgh/ijkl'
r1 = re.split('/', str1)
r2 = ''.join(r1)
print(r1)
print(r2)
# ['abcd', 'efgh', 'ijkl']
# abcdefghijkl

寻找字符串中唯一的元素

对于唯一值的筛查,可以利用 set 无序集合

  • 字符串筛查
py
str1 = 'bcdeee  aaaaaaaaaa'
print(''.join(set(str1)))
# adce b
  • 列表筛查
py
str1 = ['a8', 'bc', 'cc', 'cc']
print(list(set(str1)))
# ['cc', 'bc', 'a8']

将元素进行重复

  • 乘法实现
py
str1 = 'a'
print(str1 * 5)
# aaaaa

list1 = ['ab', 'cd', 'ef']
print(list1 * 2)
# ['ab', 'cd', 'ef', 'ab', 'cd', 'ef']
  • 加法实现
py
str1 = 'a'
print(str1 * 5)
# aaaaa

list1 = ['ab', 'cd', 'ef']
print(list1 * 2)
# ['ab', 'cd', 'ef', 'ab', 'cd', 'ef']

r1 = ''
r2 = []
for i in range(2):
    r1 += str1
    r2.extend(list1)

print(r1)
print(r2)
# aa
# ['ab', 'cd', 'ef', 'ab', 'cd', 'ef']

基于列表的扩展

py
list1 = ['ab', 'cd', 'ef']
print([2*x for x in list1])
# ['abab', 'cdcd', 'efef']
  • 列表展开
py
list1 = [
    [1,2,3],
    [1,2,3,4],
    [1,2,3,4,5],
]
print([i for k in list1 for i in k])
# [1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5]

二值交换

py
a = 1
b = 2

a, b = b, a
print(a, b)
# 2 1
py
a = 1
b = 2

c = a
a = b
b = c 
print(a, b)
# 2 1

统计列表中元素的频率

py
from collections import Counter

list1 = [1,1,2,2,3,3,3,3,3,3,3,]

count = Counter(list1)
print(count)
print(count[1])
print(count.most_common(1))
# Counter({3: 7, 1: 2, 2: 2})
# 2
# [(3, 7)]

代码执行消耗时间

py
import time

start = time.time()

num = 0
for i in range(1000):
    num = i
    print(i, '消耗时间:', time.time() - start, 's')
print('总消耗时间:', time.time() - start, 's')

检查对象的内存占用情况

py
import sys

str1 = 'a'
str2 = 'abcd'
print(sys.getsizeof(str1))
print(sys.getsizeof(str2))
# 50
# 53

在python中可以使用sys.getsizeof来查看元素所占内存的大小

字典的合并

py
dict1 = {'a': 1, 'b': 2}
dict2 = {'c': 3, 'd': 4}
r1 = {**dict1, **dict2}
print(r1)
# {'a': 1, 'b': 2, 'c': 3, 'd': 4}
py
dict1 = {'a': 1, 'b': 2}
dict2 = {'c': 3, 'd': 4}
dict1.update(dict2)
print(dict1)
# {'a': 1, 'b': 2, 'c': 3, 'd': 4}

随机采样

py
import random

str1 = 'abcdefgabc'
r1 = random.sample(str1, 2)
print(r1)
# ['b', 'b']
py
import random

list1 = [1,2,3,4,5,6]
r1 = random.sample(list1, 2)
print(r1)
# [3, 5, 6]

检查唯一性

通过检查列表长度是否与set后的列表长度一致,来判断列表中的元素是否是独一无二的。

py
list1 = [1,2,3,4,5,6]
print(len(list1) == len(set(list1)))
# True

list2 = [1,2,3,4,5,6, 6]
print(len(list1) == len(set(list1)))
# True
py
list1 = [1,2,3,4,5,6, 6, 666, 666]
print(len(list1) == len(set(list1)))
# False