Python 如何创建以字符串和整数为元素的列表?

Python 如何创建以字符串和整数为元素的列表?,python,string,input,type-conversion,Python,String,Input,Type Conversion,这听起来很简单,但我在互联网上找不到任何关于如何做到这一点的信息。我查阅了文件,但那对我没有帮助 我必须从用户那里获取输入来创建列表。这就是我现在正在使用的 t = raw_input("Enter list items: ") l = map(str,t.split()) 但这是将每个元素转换为字符串。若我在map函数中使用int,那个么每个元素都将转换为int 我该怎么办?是否还有我缺少的其他函数?您可以使用a仅对只包含数字字符的字符串调用int(这取决于): 演示: 使用try/exce

这听起来很简单,但我在互联网上找不到任何关于如何做到这一点的信息。我查阅了文件,但那对我没有帮助

我必须从用户那里获取输入来创建列表。这就是我现在正在使用的

t = raw_input("Enter list items: ")
l = map(str,t.split())
但这是将每个元素转换为字符串。若我在map函数中使用int,那个么每个元素都将转换为int

我该怎么办?是否还有我缺少的其他函数?

您可以使用a仅对只包含数字字符的字符串调用
int
(这取决于):

演示:


使用try/except。尝试将其设置为int。如果失败,则将其保留为字符串

def operation(str):
    try:
        val = int(str)
    except ValueError:
        val = str
    return val

t = raw_input("Enter list items: ")
l = map(operation,t.split())

print l
对于更“pythonic”的代码,您可以使用列表理解而不是映射:


编辑:我更喜欢iCodez。。。isDigit测试比try-Exception更好。

检查项目是否适合成为
int
,如果适合,将其转换,如果不适合,则将其保留。这不是火箭科学,非常感谢。对我来说就是这样很高兴能帮上忙!请不要忘记通过单击答案旁边的复选框来接受答案。这样做让人们知道这个问题已经解决了。
>>> t = raw_input("Enter list items: ")
Enter list items: 1 hello 2 world
>>> l = [int(x) if x.isdigit() else x for x in t.split()]
>>> l
[1, 'hello', 2, 'world']
>>>
def operation(str):
    try:
        val = int(str)
    except ValueError:
        val = str
    return val

t = raw_input("Enter list items: ")
l = map(operation,t.split())

print l
t = raw_input("Enter list items: ")
l = [operation(x) for x in t.split()]