python输入列表中的混合数据类型

时间:2018-02-19 17:45:14

标签: python python-3.x list input

我刚刚开始学习python几天前有一个简单的问题,我找不到答案:

在保留数据类型的同时,您会如何要求将项目添加到列表中?

如果我这样做:

def itemType(anyList):
    for i in range(len(anyList)):
        print(type(anyList[i]))

exampleList = []

while True:
    newItem = input('Add item to list? "NO" to end input.)
    if newItem == 'NO':
        break
    else:
        exampleList.append(input())

itemType(exampleList)

显然,所有列表项都是字符串值。有没有办法要求输入但保留字符串,整数,浮点数或任何数据类型?

2 个答案:

答案 0 :(得分:0)

您可以尝试转换为每种变量类型:

try:
  newItem = int(newItem)
except ValueError:
  newItem = float(newItem)
except ValueError:
  pass #keep as string

答案 1 :(得分:0)

您可以尝试使用函数isnumeric中的python构建。

这是它的样子:

def itemType(anyList):
    for i in range(len(anyList)):
        print(type(anyList[i]))

exampleList = []

while True:
    newItem = input('Add item to list? "NO" to end input.')
    if newItem == 'NO':
        break
    else:
      if(newItem.isnumeric()):
        exampleList.append(int(newItem))
      else:
        exampleList.append(newItem)

itemType(exampleList)

仅检查integerstring/float