四则运算存储在列表或元组中
判断是否在元组成列表中请帮忙解答一下
该回答引用chatgpt:
创建了一个存储四则运算表达式的列表 expressions_list 和元组 expressions_tuple。然后,使用 in 关键字来判断特定的表达式是否存在于列表或元组中。
根据代码示例,如果列表中存在 '2 + 3' 这个表达式,输出结果将显示 "表达式 '2 + 3' 存在于列表中";如果元组中存在 '4 - 1' 这个表达式,输出结果将显示 "表达式 '4 - 1' 存在于元组中"。
expressions_list = ['2 + 3', '4 - 1', '5 * 2', '6 / 3']
expressions_tuple = ('2 + 3', '4 - 1', '5 * 2', '6 / 3')
# 判断表达式是否在列表中
if '2 + 3' in expressions_list:
print("表达式 '2 + 3' 存在于列表中")
else:
print("表达式 '2 + 3' 不存在于列表中")
# 判断表达式是否在元组中
if '4 - 1' in expressions_tuple:
print("表达式 '4 - 1' 存在于元组中")
else:
print("表达式 '4 - 1' 不存在于元组中")
思路:
利用a+b=sum的思路,进行变形:b=sum-a,然后遍历列表,让列表元素逐一赋值给a,然后查看b是否存在列表当中即可。
直接上代码:
def sum_of_two(arr,target):
dic = {}
for i,x in enumerate(arr):
j = dic.get(target-x,-1)
if j != -1:
return((j,i))
else:
dic[x] = i
return([])
arr = [2,7,4,9]
target = 6
print(sum_of_two(arr,target))
针对您提出的问题,以下是我的回答:
列表和元组都是Python中常用的数据结构,存储方式是不同的。列表是可变的,而元组是不可变的。在内存中,列表是由一些指向不同对象的指针数组组成,每个指针指向一个对象,而元组是由一组对象直接存储而成。因为列表是可变的,所以在修改列表时需要进行对象的复制和替换,而对于元组,因为是不可变的,所以不需要进行复制和替换,效率更高。
可以使用以下方法来判断四则运算是否在列表或元组中:
x = ['+', '-', '*', '/']
y = ('+', '-', '*', '/')
z = '+'
if z in x:
print("z is in list x.")
if z in y:
print("z is in tuple y.")
以上代码展示了如何使用in关键字来判断一个元素是否在列表或元组中。由于列表是可变的,所以使用in关键字的速度比较慢,而元组则比较快。因此如果需要进行大量的查找操作,建议使用元组存储数据。