从混合字符串列表中提取整数列表

Extracting a list of ints, from a list of mixed strings

所以我正在使用 appium 自动化查看一些带有价格结果的卡片。我的目标是制作一个列表,去掉字母字符以及 $/,然后将该列表转换为整数。然后断言我的整数是 < #

我是 python 的新手,一般来说是编码方面的新手。此外,除了互联网之外,工作资源很少,提前感谢您的帮助。

我已经尝试了一些我能够通过

获得最佳结果的方法
my_list.strip(str(["$","/day"]))

奇怪的是,它只返回第二个列表项的 var = 字符串,除我的号码外,所有内容都成功切断。

```this list is actually being made in a custom function
price_check = ['/day', '/day', '/day', '/day']

```This is what I've got the best result with
for price_ints in price_check:
    price_check.strip(str(["$","/day"]))

print(price_ints) 打印了 1 这很酷。但是我丢失了列表的其余部分。

我尝试过的其他东西

  1. price_check = [re.sub('$/aday', '', item) for item in price_check]

  2. mylst = map(lambda each:each.strip("/aday"), price_check) 打印 <map object at 0x0000025276184898>

  3. price_ints = [s for s in price_check if s.isdigit()]

我希望我的输出是可以转换为 int 的数字字符串列表

['7', '1', '3', '1']

您快完成了,但是您应该将新结果附加到新列表中。您还需要从 price_ints 而不是 price_check 中去除结果。您可以执行以下操作;

price_check = ['/day', '/day', '/day', '/day']
prices = []

for price_ints in price_check:
    prices.append(price_ints.strip("$/day"))

print(prices)

输出:

['7', '1', '3', '1']

你也可以通过列表推导来达到同样的效果:

prices = [price_int.strip("$/day") for price_int in price_check]

关于您自己尝试列表理解的说明,它很接近,但您正在检查整个字符串 isdigit(),您可以做的是第二个循环,它将循环遍历列表中的每个单独的字母字符串:

price_ints = [letter for string in price_check for letter in string if letter.isdigit()]