因此,我正在与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
很酷。但是我失去了其余的名单。
我尝试过的其他事情
price_check = [re.sub('$/aday', '', item) for item in price_check]
mylst = map(lambda each:each.strip("/aday"), price_check)
打印<map object at 0x0000025276184898>
price_ints = [s for s in price_check if s.isdigit()]
我希望我的输出是可以转换为int的数字字符串的列表
['7', '1', '3', '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()]