为了账号安全,请及时绑定邮箱和手机立即绑定

Python从字符串中提取所有整数和浮点数

Python从字符串中提取所有整数和浮点数

呼如林 2024-01-27 16:06:46
所以我有这个清单:a = '[47.2, 46.6, 46.4, 46.0, 45.7, 45.54, 45.29, 45.01, 44.79, 44.54, 44.15, 0.0]'我怎样才能按顺序拉出所有浮点数和整数我试过import re a = [float(s) for s in re.findall("\d+\.\d+", a)]但不提取整数期待 =a = [47.2, 46.6, 46.4, 46, 45.7, 45.54, 45.29, 45.01, 44.79, 44.54, 44.15, 0]
查看完整描述

3 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

一些修复:


添加了列表,最后需要解压列表。

print("Hello world")

qstn_1="What is your name?\t"

qstn_2="Where would you like to GO for vacation?\t"

polling_active=True

name_lst = []

place_lst = []

while polling_active:

    name_lst.append(input(qstn_1))

    place_lst.append(input(qstn_2))

    other=input("Would you like other person to answer these survey questions ?\t\n")

    polling_active=False

    if other=='yes':

        polling_active=True


      

    

print("\n\n\t\t\tPOLLING RESULTS\n")

for i_name, i_place in zip(name_lst, place_lst):

    print("\n\n\t" + i_name.title() + " would like to go to " + i_place + " for a vacation!\n")



查看完整回答
反对 回复 2024-01-27
?
慕村9548890

TA贡献1884条经验 获得超4个赞

正则表达式:

\d+(?:\.\d+)?

代码:

import re
a = [float(s) for s in re.findall("\d+(?:\.\d+)?", a)]
print (a)

输出:

[47.2, 46.6, 46.4, 46.0, 45.7, 45.54, 45.29, 45.01, 44.79, 44.54, 44.15, 0.0]


查看完整回答
反对 回复 2024-01-27
?
慕姐8265434

TA贡献1813条经验 获得超2个赞

.这是因为您在正则表达式中包含了要匹配的 。请。更改整数的正则表达式

你应该使用(\d+(?:\.\d+)?)而不是你的正则表达式


查看完整回答
反对 回复 2024-01-27
  • 3 回答
  • 0 关注
  • 143 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信