【问题标题】:Python: Detecting non-specific inputs in listsPython:检测列表中的非特定输入
【发布时间】:2017-04-18 05:26:02
【问题描述】:

我的列表是通过选择附加的。基本上,我会问一个问题,无论你输入什么,都会进入这个列表。

我还问你输入了多少。这会创建重复项,因此如果您输入的数量大于 1,我使用串联来添加增量数字。 (例如,

“您想在列表中添加什么?” 用户:“狗” “多少?” 用户:“3”

列表 = 狗、狗 2、狗 3、猫)

对于我的特定程序,我无法知道用户可能会输入什么,所以我不能使用if ____ in _____ 可以吗?另外,现在我有这些名为“狗”的串联字符串和一个数字。我只是想让代码在列表中检测狗,但同样,我不知道狗是否在列表中!可以是任何东西!

【问题讨论】:

  • 明确一点,您希望您的代码具体做什么/您现在面临的问题是什么?你的意思是你想让代码知道每个术语输入了多少? (例如,您希望代码知道 'dog' 对应于 '3'?)
  • 那么,您想检测一些东西,但不太确定要检测的什么
  • 对不起,我的意思是包含这个细节@ForceBru,我特别坚持的部分是,如果你想从这个列表中删除某个项目,它必须是列表中的实际内容.但是这个列表中的一些项目旁边有数字,所以不要产生重复......如果这有帮助的话。
  • @jpcoder,如果您实际上不希望重复项出现在列表中,为什么还要将它们写入列表?
  • @ForceBru 我需要不那么含糊,这是我的错,对不起。我允许它们出现在列表中的原因是因为根据您输入的内容调用了一个函数。但是,我只希望该功能在您的列表中运行多次...类似于卡片组...

标签: python list input string-concatenation


【解决方案1】:

根据描述和 cmets,这是您需要的示例代码,我正在创建一个 dict,并将项目存储为键,将计数存储为值。

item = input("What would you like to add to the list?") # User Input : Dog
cnt = int(input("How many?")) : User Input : 3

d = {item:cnt} # dict created {'dog': '3'}

def callFunctionNtimes(d, key):
    """
    Function which check the key (dog) is present in the dict, if it is present call callYourFunction as many times as it is the value(count) of the key.
    """
    cnt = d.get(key, 0)
    for c in range(0, cnt):
        callYourFunction()

【讨论】:

    【解决方案2】:

    尝试使用 Set 和 list 之间的转换。添加新输入时,将列表转换为 Set 以避免重复元素;当您想使用某些列表属性时,请将其转换为列表。

    【讨论】:

      【解决方案3】:

      对于您描述的问题,使用字典比使用列表更有用。可以这样实现

      my_dict = {}
      my_dict['dog'] = 3
      

      添加what-ever-thing作为字典的键和多少作为它的值。

      【讨论】:

        【解决方案4】:

        如果您试图找出用户为“多少”输入的整数值,有多种方法可以做到这一点。 一种是有一个包含数据的字典。 例如,

        >>> dict = {} 
        >>> "What would you like to add to the list?" User: "dog" "How many?" User: "3"
        >>> dict["dog"] = 3
        >>> dict
        dict = {'dog': 3}
        >>> dict['cat'] = 2
        dict = {'dog': 3, 'cat': 2}
        >>> for key in dict:
        >>>    print(key + ": " + str(dict[key]))
        dog: 3
        cat: 2
        

        通过这种方式,您可以遍历字典中的不同键,并能够知道每个键的“数量”。

        字典中的每一项现在都对应于它的数值。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-07-22
          • 2016-12-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-08-11
          • 1970-01-01
          相关资源
          最近更新 更多