python - 如何更改列表中项目的类型?

标签 python list python-3.x

<分区>

我有一个包含“字符串”类型元素的列表。

li = ['1 ', '2', '3 ', '4', '5 ', '6', '7 '] 

我需要更改“int”上每个元素的类型。使用周期是不可取的。

最佳答案

通过使用 map function ,它返回一个生成器,在这种情况下也返回一个惰性转换(仅当您需要列表中的新元素时才转换):

li = map(int, li)

用你的例子(和 Python 3)

>>> li = ['1 ', '2', '3 ', '4', '5 ', '6', '7 ']
>>> map(int, li)
<map object at 0xffe3ed0c>
>>> list(map(int, li))
[1, 2, 3, 4, 5, 6, 7]
>>> for elem in map(int, li):
...     print(elem)
...
1
2
3
4
5
6
7


正如@hivert 所指出的,mapsome kind of deprecated in the Python community .您可以改用列表理解或生成器:

[int(x) for x in li]  # create the full list directly
(int(n) for n in li)  # create a generator (note parentheses instead of brackets)

关于python - 如何更改列表中项目的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21736872/

相关文章:

python - 解析 Nginx 日志

python - 在 Python 3.7+ 中更改 dict 中的键顺序

arrays - 如何将嵌套的 np.array 转换为 pandas dataframe 单列

python - 如何避免稀疏矩阵的循环?

python - 如何覆盖二进制数据的 JSONEncoder 行为?

python - 在 Twisted 中将 HTTP 代理转换为 HTTPS 代理

r - 如何在 R 中创建单分支实体/死胡同的外部叶列表?

java - 使用 List<E> 类型的私有(private)变量帮助 Java 中的抽象类

Python-需要快速算法来删除文件中所有派生词,换句话说

python - Argparse:如果子解析器共享父级,则子解析器的选项会覆盖主解析器