对列表每个元素调用int()函数吗?
我有一个包含数字字符串的列表,像这样:
numbers = ['1', '5', '10', '8'];
我想把列表里的每个元素都转换成整数,这样看起来会是这样的:
numbers = [1, 5, 10, 8];
我可以用一个循环来做到这一点,像这样:
new_numbers = [];
for n in numbers:
new_numbers.append(int(n));
numbers = new_numbers;
这样写是不是太麻烦了?我相信有更简洁的方式可以用一行代码完成这个操作。请帮帮我。
8 个回答
28
只是提个观点,
numbers = [int(x) for x in numbers]
列表推导式看起来更自然,而
numbers = map(int, numbers)
则更快。
不过在大多数情况下,这可能没什么太大关系。
有用的阅读资料:列表推导式和map的比较
408
这就是列表推导式的用途:
numbers = [ int(x) for x in numbers ]