前言
采用创新方式,精选趣味、实用性强的例子,从不同难度、不同算法、不同类型和不同数据结构进行总结,全面提升算法能力。
例1.查找数组中没有出现的所有数字
给定一个整数数组,其中1≤a[i]≤n(n为数组的大小),一些元素出现两次,其他元素出现一次。找到[1,n]中所有未出现在此数组中的元素。
示例:输入[4,3,2,7,8,2,3,1],输出[5,6]
代码如下(示例):
class Solut:
def sol(self,list):
n = len(list)#设置列表的长度
s = set(list)#去掉列表里重复的元素
res = [i for i in range(1,n+1) if i not in s]#列表推导式,比传统循环快约20%
return res
if __name__ == '__main__':
list = [4,3,2,7,8,2,3,1]
ss = Solut()
x = ss.sol(list)
print(x)
得到的结果:[5, 6]
例2.简单计算器
给出整数a、b以及操作符+,-,*,/,来计算结果
代码如下(示例):
class Solut:
def sol(self,a,b,oper):
if oper == '+':
return a+b
elif oper == '-':
return a-b
elif oper == '*':
return a*b
elif oper == '/':
return a/b
if __name__ == '__main__':
ss = Solut()
a = int(input("请输入数字:"))
op = input("请输入符号:")
b = int(input("请输入数字:"))
x = ss.sol(a,b,op)
print(x)
总结
列表推导式(List comprehension)是一种简洁的语法,用于创建新的列表。它允许我们使用一种简洁的方式来定义一个列表,而不需要使用传统的for循环和条件语句。
灵活应用列表推导式,可以提高开发效率。
# 列表推导式
# 原始列表
original_list = [1, 2, 3, 4, 5]
# 使用 列表推导式 推导出新列表
new_list = [x * 2 + 1 for x in original_list]
# 打印新列表
print(new_list) # 输出: [3, 5, 7, 9, 11]