1、counter()
counter是collections里面的一个类作用是计算出字符串或者列表等中不同元素出现的个数.。
from collections import Counter
s='abbcc'
res=Counter(s)
print(res) ###Counter({"a":1,"b":2,"c":2})
1.1
Counter类中的most_common()函数
parameter(参数):
传进去一个可选参数n(代表获取数量最多的前n个元素,如果不传参数,代表返回所有结果)
return(返回):
返回一个列表(里面的元素是一个元组,元组第0位是被计数的具体元素,元组的第1位是出现的次数,如:[('a',1),[('b'),2],[('c',3)]])当多个元素计数值相同时,按照字母序排列。
from collections import Counter
#统计字符串
# top n问题
user_counter = Counter("abbafafpskaag")
print(user_counter.most_common(3)) #[('a', 5), ('b', 2), ('f', 2)]
print(user_counter['a']) # 5
2、set()
set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。
>>>x = set('runoob')
>>> y = set('google')
>>> x, y
(set(['b', 'r', 'u', 'o', 'n']), set(['e', 'o', 'g', 'l'])) # 重复的被删除
>>> x & y # 交集
set(['o'])
>>> x | y # 并集
set(['b', 'e', 'g', 'l', 'o', 'n', 'r', 'u'])
3、Python3-split()
split() 通过指定分隔符对字符串进行切片,如果第二个参数 num 有指定值,则分割为 num+1 个子字符串。
4、map()
map() 会根据提供的函数对指定序列做映射。
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
语法
map() 函数语法:
map(function, iterable, ...)
>>> def square(x) : # 计算平方数
... return x ** 2
...
>>> map(square, [1,2,3,4,5]) # 计算列表各个元素的平方
<map object at 0x100d3d550> # 返回迭代器
>>> list(map(square, [1,2,3,4,5])) # 使用 list() 转换为列表
[1, 4, 9, 16, 25]
>>> list(map(lambda x: x ** 2, [1, 2, 3, 4, 5])) # 使用 lambda 匿名函数
[1, 4, 9, 16, 25]
>>>
5、 1mb = 1024kb 1kb = 1024字节 1字节 = 8位
6、itertools.pairwise()
首先,这个函数是Python 3.10 新特性。
它表示的是一个迭代器(有点废话,itertools里面都是各种迭代器),他的含义是,从对象中获取连续的重叠对。
比如说:s= ‘abcde’,itertools.pairwise(s)的输出应该为,ab, bc, cd, de;
如果s中的个数小于2,输出为空。
示例程序:
from itertools import pairwise
a = pairwise('12345')
# 输出的a应为是 12 23 34 45
b = pairwise([1])
# b为空
7、Python ord()
ord()函数是Python中的一个库函数,它用于从给定的字符值中获取数字值,它接受一个字符并返回一个整数,即用于将字符转换为整数,即用于获取a的ASCII值。
of ord() function*/
val = 'A'
print("ASCII code of ", val, " is = ", ord(val))
val = 'x'
print("ASCII code of ", val, " is = ", ord(val))
val = '@'
print("ASCII code of ", val, " is = ", ord(val))
val = '8'
print("ASCII code of ", val, " is = ", ord(val))
输出结果
ASCII code of A is = 65
ASCII code of x is = 120
ASCII code of @ is = 64
ASCII code of 8 is = 56
8、zip()
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
>>> a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b) # 返回一个对象
>>> zipped
<zip object at 0x103abc288>
>>> list(zipped) # list() 转换为列表
[(1, 4), (2, 5), (3, 6)]
>>> list(zip(a,c)) # 元素个数与最短的列表一致
[(1, 4), (2, 5), (3, 6)]
>>> a1, a2 = zip(*zip(a,b)) # 与 zip 相反,zip(*) 可理解为解压,返回二维矩阵式
>>> list(a1)
[1, 2, 3]
>>> list(a2)
[4, 5, 6]
>>>
9、input()
1、输入一个数字直接 m = int(input()),
2、输入两个数字就是
m, n = map(int, input().split())#用了map就意为着左边是多值接收,
3. a,b=map(int,input().split("#")),
4. str=list(map(int,input().split()))#这样可以**一行输入**无线多的数据,用list盛放
5. data=[int(input()) for _ in range(10)]#将**多行input的输入**,放到一个list中
6. data=[list(map(int,input().split())) for i in range(2)]相同的思想生成数组
7. data=[tuple(map(int, input().split())) for _ in range(n)]
8. 连着输入for i in range(t):
x=input()
9. arr = input().split()#list里一个是str,一个是int
print(arr)
a=list(map(int,input().split()))
print(a)
12 6
['12', '6']
45 6
[45, 6]
9.a=2.568
a=str(a)
print(float(a[0:4])+1)#通过变成str,不4舍5入,再float成数值
print('%.2f'%(float(a)))#%.2f直接4舍5入
10、sort()与sorted()区别
sort()与sorted()的不同在于,sort是在原位重新排列列表,而sorted()是产生一个新的列表。
sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
对于一个无序的列表a,调用a.sort(),对a进行排序后返回a,sort()函数修改待排序的列表内容。
而对于同样一个无序的列表a,调用sorted(a),对a进行排序后返回一个新的列表,而对a不产生影响。
#reverse=False为升序排序(默认);reverse=True为降序排序
>>> list1=[(8, 'Logan', 20), (2, 'Mike', 22), (5, 'Lucy', 19)]
>>> list1.sort(key=lambda x:x[2])
>>> list1
[(5, 'Lucy', 19), (8, 'Logan', 20), (2, 'Mike', 22)]
>>> list1=[(8, 'Logan', 20), (2, 'Mike', 22), (5, 'Lucy', 19)]
>>> sorted(list1, key=lambda x:x[2])
[(5, 'Lucy', 19), (8, 'Logan', 20), (2, 'Mike', 22)]
>>> list1
[(8, 'Logan', 20), (2, 'Mike', 22), (5, 'Lucy', 19)]