Python公共操作

1.运算符

常见的公共操作运算符如下:

运算符  描述 适用的类型
+ 合并 字符串、列表、元组
* 复制 字符串、列表、元组
in 是否存在 字符串、列表、元组、集合、字典
not in 是否不存在 字符串、列表、元组、集合、字典

 

+合并:

str1 = 'abc'
str2 = 'ABC'
print(str1 + str2)  #abcABC
list1 = [1, 2, 'a']
list2 = [3, 4, 'b']
print(list1 + list2)    #[1, 2, 'a', 3, 4, 'b']
tu1 = (1, 2, 'a')
tu2 = (3, 'b')
print(tu1 + tu2)    #(1, 2, 'a', 3, 'b')

*复制

print('a' * 5)  #aaaaa
li1 = [1, 'a']
print(li1 * 3)  #[1, 'a', 1, 'a', 1, 'a']
tu1 = (1, )
print(tu1 * 3)  #(1, 1, 1)

in和not in

print('a' in 'abcd')        #True
print('a' not in 'abcd')    #False
li1 = [1, 2, 'a']
print('a' in li1)       #True
print(2 not in li1)     #False
tu1 = (1, 2, 'a')
print('a' in tu1)       #True
print(2 not in tu1)     #False

 

2.公共方法

常见的公共方法如下:

函数 描述 语法示例
len() 获取容器中元素的个数 len('abcd') ,返回4,即字符串有4个字符
max() 返回容器中值最大的元素 max([1, 3, 2, 0]),返回3,列表中最大的元素是3
min() 返回容器中值最小的元素 min([1, 3, 2, 0]),返回0,列表中最大的元素是0
sum() 求和 sum([1, 2, 3]),返回6
range(start,end,step) ⽣成从start到end(不包含end)的数字,步⻓为 step,一般供for循环使⽤  
enumerate() 将⼀个可遍历的数据对象(如列表、元组或字符串)组合为⼀个索引序列,同时列出数据和数据下标,⼀般⽤在 for 循环当中。  
zip() 将两个序列的元素逐个对应合并  
del或del()    

 

enumerate():

li1 = ['a', 'b', 'c']
li2 = []
li3 = []
for x in enumerate(li1):        #默认0作为起始下标
    li2.append(x)
for x in enumerate(li1,1):      #将1作为起始下标
    li3.append(x)
print(li2)      #[(0, 'a'), (1, 'b'), (2, 'c')]
print(li3)      #[(1, 'a'), (2, 'b'), (3, 'c')]

 zip():

li1 = ['a', 'b', 'c']
li2 = ['A', 'B', 'C']
li3 = ['a', 'b']
print(list(zip(li1, li2)))  #[('a', 'A'), ('b', 'B'), ('c', 'C')]
print(list(zip(li2, li3)))  #[('A', 'a'), ('B', 'b')]

 

3.列表推导式

推导式又叫生成式,是Python中一种创建序列的方式,推导式代码简洁、内存占用小。

Python 支持各种数据结构的推导式:

  • 列表(list)推导式
  • 字典(dict)推导式
  • 集合(set)推导式
  • 元组(tuple)推导式

(1)列表推导式

[表达式 for 变量 in 序列 if 条件]

li1 = [str(a) + ':' for a in (1, 2, 3)]
print(li1)  # ['1:', '2:', '3:']

li2 = [x for x in range(1, 11) if x % 2 == 0]
print(li2)  #[2, 4, 6, 8, 10]

(2)字典推导式

{健:值 for 变量 in 序列 if 条件}

dict1 = {x: x**3 for x in range(1, 4)}
print(dict1)    #{1: 1, 2: 8, 3: 27}

li1 = ['a', 'b', 'c']
li2 = ['A', 'B', 'C']
print({li1[i]: li2[i] for i in range(len(li1))})    #{'a': 'A', 'b': 'B', 'c': 'C'}

dict3 = {'张三': 89, '李四': 67, '王五': 53, '赵六': 72}
dict4 = {k: v for k, v in dict3.items() if v >= 60}
print(dict4)    #{'张三': 89, '李四': 67, '赵六': 72}

(3)集合推导式

{表达式 for 变量 in 序列 if 条件}

同列表推导式一样,只是将 [] 换成 {}

print({x for x in 'ab21d493e01' if x not in '0123456789'})  #{'e', 'd', 'b', 'a'}

(4)生成器表达式

(表达式 for 变量 in 序列 if 条件)

同列表推导式类似,但该推导式返回的并不是一个元组,而是一个生成器对象。生成器可以转换为元组。

tu1 = (x*2 for x in range(1, 5))
print(tu1)          #<generator object <genexpr> at 0x000002818C2F0580>
print(tuple(tu1))   #(2, 4, 6, 8)

 

posted on 2023-04-02 13:47  木去  阅读(31)  评论(0)    收藏  举报