如何在Python中将字符串列表转换为整数

10

在我的 Python 脚本中,我有:

user = nuke.getInput("Frames Turned On")
userLst = [user]
print userLst

结果:

['12,33,223']

我想知道如何在列表中删除 ' ,或者将其转换为整数?


1
你想将由逗号分隔的三个数字转换为整数?应该如何实现? - Ignacio Vazquez-Abrams
@Ignacio:为了解释Nick可能的意思:如果你在列表['12,33,223']中“去掉'”,你会得到[12,33,223]--至少这是我理解的... - Sven Marnach
6个回答

20
使用split()函数在逗号处进行分割,使用int()将其转换为整数:
user_lst = map(int, user.split(","))

9
列表中没有要删除的'。当您打印列表时,由于它没有直接的字符串表示形式,Python会显示其repr——一种显示其结构的字符串。您有一个带有一个项目的列表,该项目是字符串12,33,223;这就是[user]的作用。
您可能想要通过逗号拆分字符串,像这样:split
user_list = user_input.split(',')

如果您希望它们成为 int,您可以使用一个列表推导

user_list = [int(number) for number in user_input.split(',')]

1
[int(s) for s in user.split(",")]

我不知道你为什么要定义单独的userLst变量,而这是一个只有一个元素的列表。


1
>>> ast.literal_eval('12,33,223')
(12, 33, 223)

如果用户只被允许输入一个数字,那么情况就不太好。 - Eevee
当然,但是这很容易被捕捉到。 - Ignacio Vazquez-Abrams
为什么不直接使用 eval('12,33,223', {}) 呢?这样做只允许与 literal_eval 相同的内容。顺便说一下,楼主可能不想要除数字以外的其他内容。 - user780363
而那些不是数字的东西很容易被捕捉到。 - Ignacio Vazquez-Abrams

-1
>>> result = ['12,33,223']
>>> int(result[0].replace(",", ""))
1233233
>>> [int(i) for i in result[0].split(',')]
[12, 33, 233]

-2
您可以使用join方法并将其转换为整数:
int(''.join(userLst))    

1233223

这并没有真正回答问题,也没有解决实际问题。 - Eevee
@Eevee - 这个代码为什么没有将字符串列表转换成整数? - tylerdavis
这是列表中的单个字符串,而不是字符串列表。 - Ignacio Vazquez-Abrams

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接