从混合字符串列表中提取整数列表
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
这很酷。但是我丢失了列表的其余部分。
我尝试过的其他东西
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']
您快完成了,但是您应该将新结果附加到新列表中。您还需要从 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()]
所以我正在使用 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
这很酷。但是我丢失了列表的其余部分。
我尝试过的其他东西
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']
您快完成了,但是您应该将新结果附加到新列表中。您还需要从 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()]