【发布时间】:2022-01-16 17:01:07
【问题描述】:
我有一个包含str 和int 的字符串,例如string = "qA2"。我想在列表中添加'q'、'A' 和2,但我不想更改元素的类型。有可能吗?
【问题讨论】:
-
"qA22"怎么样?整数元素应该是2还是22? -
@Selcuk 应该是 2。
标签: python-3.x string list types
我有一个包含str 和int 的字符串,例如string = "qA2"。我想在列表中添加'q'、'A' 和2,但我不想更改元素的类型。有可能吗?
【问题讨论】:
"qA22" 怎么样?整数元素应该是2 还是22?
标签: python-3.x string list types
您可以使用str 类的.isdigit() 方法执行以下操作:
>>> s = "qA234"
>>> [int(x) if x.isdigit() else x for x in s]
['q', 'A', 2, 3, 4]
请注意,对于 "x²" 等字符串,这将失败,因为 ²(上标 2)出于某种原因被 .isdigit() 方法视为数字。以下更安全:
>>> s = "3x²"
>>> [int(x) if "0" <= x <= "9" else x for x in s]
[3, 'x', '²']
【讨论】: