【发布时间】:2020-08-10 11:44:57
【问题描述】:
所以我有一个看起来像这样的字符串列表:
my_list = ['389.3K', '2M' , '1.9M' , '6.9M' , '4.3M' , '251.5K' , '3.6M']
这就是列表的生成方式和可读性(“视频”是硒网络元素的列表):
my_list = [x.text for x in video]
video.extend(my_list)
my_list = [i for i in my_list if i if not 'ago' in i]
my_list = [w.replace("Views", "") for w in my_list]
我想做的是根据每个元素中的一个特定字符将此列表拆分为另外两个列表,如下所示:
k_list = ['389.3K' , '251.5K']
m_list = ['2M' , '1.9M' , '6.9M' , '4.3M' , '3.6M']
我的最终目标是能够仅将元素中的数字作为浮点数并将每个元素乘以它们的适当数量( K = *1000 和 M = *1000000 ),例如:
my_new_list = ['389,300' , '2,000,000' , '1,900,000' , '6,900,000' , '4,300,000', '251,500' , '3,600,000']
我是 python 新手(一般编码 tbh),所以请原谅任何意大利面条代码或糟糕的思考过程。
这是我尝试过的:
k_val = "K"
m_val = "M"
if any(k_val in s for s in my_list):
my_list = [w.replace("K", "") for w in my_list]
my_list = [float(i) for i in vmy_list]
my_list = [elem * 1000 for elem in my_list]
elif any(m_val in x for x in my_list):
my_list = [w.replace("M", "") for w in my_lists]
my_list = [float(i) for i in my_list]
my_list = [elem * 1000000 for elem in my_list]
我明白了:
ValueError:无法将字符串转换为浮点数:'2M'
【问题讨论】:
-
感谢您不仅询问 Y,还询问 X :-)
-
你说你想要浮动,然后显示字符串。是哪个?
-
不幸的是,这并没有阻止一些回答者仍然解决 Y...
-
我的帖子很无聊,我的意思是变成浮点数进行乘法,然后返回字符串以供进一步使用。 @superbrain
标签: python python-3.x string list selenium