python集合及公共方法和列表推导式

122 阅读3分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第5天

集合(set)

定义

集合是用{}进行定义的,内部元素不是键值对(与字典区分开)

特点

  • 没有重复元素
  • 是无序的
  • 没有下标
set = set()   #只有这样才能定义一个空集合
set = {}   #这种方法只适合定义一个空的列表

添加元素

  • add:往集合里添加元素,没有返回值
set = set()
set.add('三体')
set.add('围城')

PS C:\Users\86181\work space\测试> python 实验.py
{'三体', '围城'}
PS C:\Users\86181\work space\测试> python 实验.py
{'围城', '三体'}
  • update:合并两个集合内的元素
set1 = {'lichuang'}
set2 = {'三体','围城'}
set1.update(set2)

PS C:\Users\86181\work space\测试> python 实验.py
{'围城', 'lichuang', '三体'}
PS C:\Users\86181\work space\测试> python 实验.py
{'三体', '围城', 'lichuang'}
PS C:\Users\86181\work space\测试> python 实验.py
{'lichuang', '三体', '围城'}

注意:以上三次运行的结果都不一样(所以集合内的元素是无序的)

公共方法

内置方法

方法作用
bin()/oct()/hex()/chr()/ord()转二进制/十进制/十六进制/字符(给ascll码值返回的字符)/ascll码
int()/str()/float()/tuple()/dict()/set()转换成整数/字符串/浮点数/元组/字典/集合
print()输出
input()输入
type()查看数据类型
id()查看地址
len()查看长度
del 对象(变量名)伤处在指定的变量名
in/not in是否在内
is比较两个地址是否一致
break/continue直接跳出循环/跳出当前循环进入新循环

对于数(常用公共方法)

方法作用
max()取一组数中最大的那个数
min()取一组数中最小的那个数
sum()取一组数的和
abs()取一个数的绝对值
sorted()系统的内置排序方法(默认升序,降序和sort类似)

运算符

运算符表达式结果描述支持数据类型
+[1,2]+[3,4][1,2,3,4]合并字符串,列表,元组
*[1]*4[1,1,1,1]复制字符串,列表,元组
|S|T并集集合
-S-T差集集合
&S&T交集集合
S^T补集集合

avatar

列表推导式

定义

格式:[i for i in range 可迭代的]

​ [i for i in range 可迭代的 if 条件]

​ [结果1 if 条件 动作 else 结果2 动作 for i in range 可迭代的]

​ [for i in range() for j in range()]

# 正常的写法
list = []
for i in range(1,21):
	list.append(i)
    
#列表推导式
list = [i for i in range(1,21)]  #第一个i是最终结果
print(list)

# 正常的写法
list = []
for i in range(1,21):
	list.append(i)
    
# 列表推导式
list = [i for i in range(0,101) if i%2 == 0]
print(list)

# 正常写法
list = ['100','200','hello','nihao']
for i in range list :
    if i.startswith('h'):
        i.title()
    else:
        i.upper()
print(list)        
        
# 列表推导式
list = ['100','200','hello','nihao']
list1 = [i.title() if i.startswith('h') else i.upper() for i in list]

#正常写法
list = []
for i in range(1,10):
    for j in range(1,10):
        list.append((i,j))
print(list)

#列表推导式
list = [(i,j)for i in range(1,10) for j in range(1,10)]

image-20220409181746740.png

image-20220409230940723.png