【问题标题】:TypeError: '>' not supported between instances of 'int' and 'list'TypeError:“int”和“list”的实例之间不支持“>”
【发布时间】:2019-11-27 14:02:04
【问题描述】:

我在这里遇到此代码的问题,如何将列表更改为 int 以便对其进行处理。我尝试了多种可以将列表转换为整数的变体,但没有任何效果。谢谢

 items = []

if option == 'y':
    length = 50
    items = [randrange(-100, 101 + 1) for i in range(length)]
else:
    print('wrong, bye')
    exit()

subset2 = 2
print('\nset: {' + ', '.join(map(str, items)) + '}')
items = list(map(int, items))
overallHighestSum = 0
while subset2 != length:
    sets = []
    currentHighestSum = 0

    for i in range(length):
        if length > i + subset2 - 1:
            terms = []
            termSum = 0
            terms = list(map(int, terms))

            for j in range(length):
                currentItem = items[j + 1]
                terms.append(currentItem)

                sets.append(terms)

                if sum(terms) > currentHighestSum:
                    currentHighestSum = sum(terms)

                if sum(terms) > overallHighestSum:
                    overallHighestSum = sum(terms)
                    overallHighestSum = terms

【问题讨论】:

  • 您在哪一行收到错误?
  • 您能否添加代码的预期输出?没有输入和预期输出的问题可能无法正确回答。

标签: python string int subset


【解决方案1】:

你正在改变overallHighestSum的内容

if sum(terms) > overallHighestSum:
    overallHighestSum = sum(terms)
    overallHighestSum = terms

去掉overallHighestSum = terms,改成如下:

if sum(terms) > overallHighestSum:
    overallHighestSum = sum(terms)

【讨论】:

  • overallHighestSum = max(overallHighestSum, sum(terms)) 看起来更干净但很好的答案
  • 可以,可以用单行语句代替两行代码
猜你喜欢
  • 2018-09-03
  • 1970-01-01
  • 1970-01-01
  • 2020-02-12
  • 2022-07-03
  • 1970-01-01
  • 2020-09-07
  • 2020-11-13
  • 2021-01-15
相关资源
最近更新 更多