空白君学python 发表于 2023-2-12 21:14:48

如何实现这段代码求大佬告知

比如给定的列表 nums = ,目标值 target = 9,那么由于 nums + nums = 2 + 7 = 9,所以打印结果是:

ba21 发表于 2023-2-12 21:27:14

本帖最后由 ba21 于 2023-2-12 21:54 编辑


nums =
target = 17

for i, v in enumerate(nums[:len(nums)//2]):
    b = target - v
    if b in nums:
       j = nums.index(b)
       print()
       break

isdkz 发表于 2023-2-12 21:27:57

本帖最后由 isdkz 于 2023-2-12 21:40 编辑

nums =
target = 9
for i1, v1 in enumerate(nums):
    for i2, v2 in enumerate(nums, i1 + 1):
      ifv1 + v2 == target:
            print()

jackz007 发表于 2023-2-12 21:29:51

nums , target = , 9
for i in range(len(nums) - 1):
    for j in range(i + 1 , len(nums)):
      if nums + nums == target :
            print()

空白君学python 发表于 2023-2-12 21:36:55

ba21 发表于 2023-2-12 21:27


大佬这是什么意思可以细说一下吗

不二猫猫 发表于 2023-3-11 16:52:00

函数 find_two_sum,用于在给定列表 nums 中查找是否存在两个元素相加等于目标值 target,如果存在,则返回这两个元素的下标。

这个函数的实现思路比较简单,它使用两次循环来枚举列表中所有可能的元素组合,对于每一对元素,判断它们的和是否等于目标值,如果是则返回它们的下标。

函数的具体实现如下:

def find_two_sum(nums, target):
    n = len(nums)# 获取列表长度
    for i in range(n):# 外层循环枚举列表中的每一个元素
      for j in range(i+1, n):# 内层循环从当前元素的后一个位置开始枚举后面的所有元素
            if nums + nums == target:# 判断当前两个元素的和是否等于目标值
                return # 如果是,则返回它们的下标
    return None# 如果循环结束都没有找到符合条件的元素,则返回 None
在函数内部,首先获取列表的长度 n,然后使用一个外层循环枚举列表中的每一个元素。在外层循环的每一次迭代中,使用一个内层循环从当前元素的后一个位置开始枚举后面的所有元素。对于每一对元素,在判断它们的和是否等于目标值后,如果是,则返回它们的下标;如果循环结束都没有找到符合条件的元素,则返回 None。

需要注意的是,在内层循环中,从当前元素的后一个位置开始枚举后面的所有元素,是为了避免重复计算,因为如果从当前元素的前一个位置开始枚举,那么之前已经计算过的组合将会被重复计算一次。

不二猫猫 发表于 2023-3-11 16:52:33

不二猫猫 发表于 2023-3-11 16:52


这个问题可以使用两次循环来解决。对于列表中的每一对元素,判断它们的和是否等于目标值,如果是则返回这两个元素的下标。

下面是一个实现这个功能的函数:

def find_two_sum(nums, target):
    n = len(nums)
    for i in range(n):
      for j in range(i+1, n):
            if nums + nums == target:
                return
    return None
这个函数的参数是一个列表 nums 和一个目标值 target,它的返回值是一个包含两个元素的列表,这两个元素是 nums 列表中相加得到目标值的两个元素的下标,如果找不到这样的两个元素,则返回 None。

在实现中,首先使用一个外层循环枚举列表中的每一个元素,然后内层循环从当前元素的后一个位置开始枚举后面的所有元素。对于每一对元素,判断它们的和是否等于目标值,如果是则返回它们的下标。

下面是一个调用上述函数的例子:

nums =
target = 9
result = find_two_sum(nums, target)
print(result)# 输出
可以看到,这个例子中函数返回了结果 ,表示列表中的第 0 个元素和第 1 个元素相加得到了目标值 9。
页: [1]
查看完整版本: 如何实现这段代码求大佬告知