1、交换变量值。
a, b = 1, 2
print(a, b)
a, b = b, a
print(a, b)
1 2
2 1
2、给列表元素创建新的分隔符,生成字符串。
a = ["Python", "is", "awesome"]
print("--".join(a))
Python–is–awesome
3、找列表中出现次数最多的元素。
from collections import Counter
a = [1,2,3,1,2,1,4,6,2,4,3,1]
print(max(set(a), key = a.count))
cnt = Counter(a)
print(cnt.most_common(2))
1
[(1, 4), (2, 3)]
4、反向输出列表。
b = a[i:j:s]当s<0时,i缺省时,默认为-1. j缺省时,默认为-len(a)-1,所以a[::-1]相当于 a[-1:-len(a)-1:-1],也就是从最后一个元素到第一个元素复制一遍。
a = [5, 4, 3, 2, 1]
print(a[::-1])
for i in reversed(a):
print(i)
[1, 2, 3, 4, 5]
1
2
3
4
5
5、求列表中最大、最小值下标。
a = [1,2,3,4]
print('最小值下标:', min(range(len(a)), key=a.__getitem__))
print('最大值下标:', max(range(len(a)), key=a.__getitem__))
最小值下标: 0
最大值下标: 3
6、转置2维数组。
original = [['a', 'b'], ['c', 'd'], ['e', 'f']]
transposed = zip(*original)
print(list(transposed))
[(‘a’, ‘c’, ‘e’), (‘b’, ‘d’, ‘f’)]
7、对字典值的排序。
from operator import itemgetter
d = {'a':10, 'b':5, 'c':12}
print(sorted(d.items(), key=lambda x: x[1]))
print(sorted(d.items(), key=itemgetter(1)))
print(sorted(d, key=d.get))
[(‘b’, 5), (‘a’, 10), (‘c’, 12)]
[(‘b’, 5), (‘a’, 10), (‘c’, 12)]
[‘b’, ‘a’, ‘c’]
8、函数的链式写法。
def product(a, b):
return a * b
def add(a, b):
return a + b
b = False
print((product if b else add)(6, 8))
14
9、for else结构
在for循环完整完成后才执行else;如果中途从break跳出,则连else一起跳出。
a = [1, 2, 3, 4, 5]
for i in a:
if i == 0:
print("break跳出循环")
break
else:
print("完成循环")
for i in a:
if i == 1:
print("break跳出循环")
break
else:
print("完成循环")
完成循环
break跳出循环
10、核对两个字符是否为回文。
from collections import Counter
str1, str2= "信言不美", "美言不信"
Counter(str1) == Counter(str2)
True