我正在尝试解决此python问题,但这里发生了此错误。如何解决这个问题?

I'm trying to solve this python problem but here this error occurs. How to solve this?

提问人:Rahul Yadav 提问时间:3/6/2023 最后编辑:Michael M.Rahul Yadav 更新时间:3/6/2023 访问量:50

问:

问题:给定一个整数 num 数组和一个整数目标,返回两个数字的索引,使它们相加为目标。

def twoSum():
    n = input("")
    t = tuple(n)
    nums = t.split(',')
    target = int(input(""))
    i = target - nums[0]
    for j in nums:
        if i == j:
            print([k, j])    
twoSum()`

错误

AttributeError: 'tuple' object has no attribute 'split' nums = t.split(',') Line 4 in twoSum (Solution.py) twoSum() Line 10 in <module> (Solution.py)

python-3.x 列表 python-2.7

评论

0赞 John Gordon 3/6/2023
你为什么打电话?目的是什么?tuple()
1赞 teapot418 3/6/2023
我认为您可以避免担心输入和打印内容,描述不要求两者。对一些示例列表和目标进行硬编码,并用它来调用您的函数。在这一点上,你可能可以从头开始。
0赞 Daniel Hao 3/6/2023
顺便说一句 - 这是一个有趣的问题,但在尝试之前,您必须彻底了解问题。提示 - 搜索 S/O。

答:

0赞 Wijze 3/6/2023 #1

如果输入的格式为:“1,2,3”,您可以直接拆分输入字符串,而不是将其转换为如下数字:

n = input("input: ")
string_array = n.split(",")
int_array=list(map(to_int, string_array))

def to_int(string):
  return int(string)

现在你有一个数字列表。 为了进一步解决问题,您可以执行如下操作:

for i in range(len(int_array)):
  for j in range(len(int_array)):
    if (not(i==j) and int_array[i]+int_array[j]==target):
      return i,j

这里的目标是您想要成为总和的数字。 当然,还有其他解决方案可以更有效地解决这个问题,但这个解决方案(希望)有效并且很简单。