Python的一些操作技巧

1、查找列表中频率最高的值

from collections import Counter

a = [1,2,3,1,2,3,1,2,2,2,4,5,7]

print(max(set(a), key=a.count))

cnt = Counter(a)
print(cnt.most_common(4)) #计算每个元素出现频率 4代表前面四个元素

2、检查两个字符串是不是由相同的字母不同顺序组成

str1 = 'li chao'
str2 = 'chao li'
print(Counter(str1) == Counter(str2))

3、反转字符串

for char in reversed(str1):
print(char)

b = 12345678
print(int(str(b)[::-1]))

4、转置二维数组

original = [['a', 'b'],['c', 'd'], ['e', 'f']]
transposed = zip(*original)
print(list(transposed))

5、链式函数调用

def product(a, b):
return a * b

def add(a, b):
return a + b
b = False
print((product if b else add)(5,7))

5、通过键对字典元素排序

m = {'apple': 10, 'orange': 20, 'banana': 5, 'rotten tomato': 1}
print(sorted(m.items(), key=lambda x: x[1]))
from operator import itemgetter
print(sorted(m.items(), key=itemgetter(0)))

print(sorted(m, key=m.get))

6、转换列表为逗号分隔符格式

也就是列表类型转换为字符串

list = ['foo', 'bar', 'xyz']
print(','.join(list))

numbers = [2, 4, 5, 10]
print(','.join(map(str,numbers)))

data = [2, 'hello', 3, 3.4]
print(','.join(map(str, data)))

7、合并字典

d1 = {'a': 1}
d2 = {'b': 2}
print({**d1, **d2})
print(dict(d1.items() | d2.items()))
d1.update(d2)
print(d1)

8、列表中最大和最小值索引

list1 = [40, 10, 20,30]

def minIndex(list1):
return min(range(len(list1)), key=list1.getitem)

def maxIndex(list1):
return max(range(len(list1)), key=list1.getitem)
print(minIndex(list1))
print(maxIndex(list1))

9、移除列表中重复的元素

list2 = [2,2,3,3,1]
newlist2 = list(set(list2))
print(newlist2)

from collections import OrderedDict

list3 = ['foo', 'bar', 'bar', 'foo']
print(list(OrderedDict.fromkeys(list3).keys()))

你可能感兴趣的:(Python的一些操作技巧)