Python:检测列表中的非特定输入

时间:2017-04-18 05:26:02

标签: python list input string-concatenation

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

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

“您要将哪些内容添加到列表中?” 用户:“狗” “多少?” 用户:“3”

list = dog,dog2,dog3,cat)

对于我的特定程序,我无法知道用户可能输入的内容,因此我无法使用if ____ in _____可以吗?此外,现在我有这些连接的字符串名为'dog'和一个数字。我只是希望代码在列表中检测狗,但是再次,我不知道狗是否在列表中!它可以是任何东西!

4 个答案:

答案 0 :(得分:1)

从描述和注释中,这里是一个示例代码,您需要,我创建一个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()

答案 1 :(得分:0)

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

答案 2 :(得分:0)

对于您描述的问题,如果您使用字典而不是列表,则更有用。它可以像这样实现

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

添加什么东西作为字典的键和多少作为其值。

答案 3 :(得分:0)

如果您试图找出用户为“多少”输入的整数值,您可以通过多种方式执行此操作。 一个是拥有包含数据的字典。 例如,

>>> 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

通过这种方式,您可以遍历字典中的不同键,并能够知道每个键中有多少个键。

字典中的每个项目现在都对应于其数值。