【问题标题】:Python how to: convert set to int [closed]Python 如何:将集合转换为 int [关闭]
【发布时间】:2012-02-06 01:54:39
【问题描述】:

有人可以向我解释一下如何将集合转换为 int,它的作业

当我需要将集合的长度与列表的长度或其他内容进行比较时?

lst = []
oldset =set()
word_set = {}


    while True:
    inp = input('Enter text: ')

    if inp == '':
        print('Finished')
        break

    lst = inp.split()
    for word in lst:
        oldset.add(word)
        oldset = len(oldset)# im sure that this line is my error it tells me to remove .add but i need that

    if word_count < len(word_set):
        word_count[word] = len(word_set.keys())
    print(word,word_count)

我收到的错误信息是

Traceback (most recent call last):                                                                                                                                         
  File "./input_counter.py", line 17, in <module>                                                                                                                          
    oldset.add(word)                                                                                                                                                       
AttributeError: 'int' object has no attribute 'add'

【问题讨论】:

  • 你到底想做什么?用英文详细解释整个问题。

标签: python python-3.2


【解决方案1】:

s 是你的集合,len(s)。这将返回集合中元素的数量。

请不要将此称为“将集合转换为 int”。这不是你正在做的 - 你得到了集合的基数,这不是“转换”,因为你得到的 int 不是原始的一些替代表示,它是一个数字它拥有原始的属性

【讨论】:

  • 感谢我尝试过的评论,但我收到了错误
  • @Mike “我收到一个错误”没有什么帮助。什么错误?你试过什么代码?
  • @Mike,编辑您的问题,向我们展示导致错误的代码。
  • 如果您遇到错误,您应该发布它。这是一个很好的领域。
  • 下次道歉时我会更加小心地命名
【解决方案2】:

我不确定你想用这段代码完成什么:

for word in lst:
    oldset.add(word)
    oldset = len(oldset)

但你实际完成的是:你循环遍历lst中的所有单词,对于每个单词,你尝试将单词添加到oldset,然后你拆除oldset并替换它int -- oldset 的长度。这显然只有效一次,因为在您执行一次之后,oldset 不再是 set,而是现在是 int

了解set 是一个容器——它包含许多其他内容——而int 只是一个值——它只是一个数字。你想在这里做什么?告诉我们更多...

【讨论】:

  • 感谢我的目标是遍历单词列表并将每个单词添加到集合中。如果集合的大小增加(表明这个词之前没有被处理过),则将该词作为键添加到字典中,值为集合的新长度。使用另一个循环,显示 dict 中的单词列表及其值,该值表示程序发现它们的顺序。但是我一次只做一个部分,试图弄清楚
  • @Mike,好的,有几点意见。首先,如果您想查看集合的大小,请将该值存储在单独的变量中。在你的循环之前,wordset_size = len(oldset);然后在循环中,if len(oldset) != wordset_size: wordset_size = len(oldset) 等等。但我完全怀疑你使用了一套。你的word_set 变量实际上是一个dict,而不是一个集合,我不明白你为什么需要一个集合。 set 只是一个仅存储密钥的 dict。为什么不检查这个词是否在word_dict 中,如果没有,就这样输入:word_dict[word] = len(word_dict)
猜你喜欢
  • 2013-08-26
  • 1970-01-01
  • 2013-11-21
  • 1970-01-01
  • 2013-10-20
  • 2018-05-11
  • 2014-11-08
  • 1970-01-01
  • 2015-07-02
相关资源
最近更新 更多