Python小技巧(一)

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

你可能感兴趣的:(python)