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

时间:2019-05-24 04:08:43

标签: python python-3.7 appium-android

因此,我正在与appium一起自动查看某些具有价格结果的卡。我的目标是创建一个列表,删除Alpha字符以及$/,然后将该列表转换为整数。然后断言我的整数是<#

我是python和编码的新手。此外,除了互联网以外,我们几乎没有其他资源在工作,谢谢您的提前帮助。

我已经尝试了一些方法

以获得最佳效果
my_list.strip(str(["$","/day"]))

奇怪的是,它仅返回第二个列表项的var =字符串,除我的电话号码外,其他所有内容均已成功切断。

```this list is actually being made in a custom function
price_check = ['$7/day', '$1/day', '$3/day', '$1/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']

1 个答案:

答案 0 :(得分:1)

您快到了,但是您应该将新结果附加到新列表中。另外,您需要从price_ints而不是price_check剥离结果。您可以执行以下操作;

price_check = ['$7/day', '$1/day', '$3/day', '$1/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()]