通过前面的问题我得到了我想要的数字
import re
text = "May we stop to remember the 2996 people that died & the more than 6000 injured on #September11"
m = re.findall("(([a-zA-Z\\d\\,]+\\s){3})(died|injured)", text)
for i in range(0, len(m)):
x = m[i][0]
a = []
z = m[i][2]
for n in re.findall(r"\d+\.?\d*",x):
a.append(n)
a.append(z)
print(a)
得到结论是个list
['2996', 'died']
['6000', 'injured']
该如何加入一个判定如果died人数大于20或injured人数大约50输出A
died人数大于10或injured人数大约30输出B
died人数大于5或injured人数大约10输出C
import re
text = "May we stop to remember the 2996 people that died & the more than 6000 injured on #September11"
m = re.findall("(([a-zA-Z\\d\\,]+\\s){3})(died|injured)", text)
for i in range(0, len(m)):
x = m[i][0]
a = []
z = m[i][2]
for n in re.findall(r"\d+\.?\d*",x):
if z == 'died':
if int(n) > 20:
a.append('A')
elif int(n) > 10:
a.append('B')
elif int(n) > 5:
a.append('C')
else:
a.append('D')
elif z == 'injured':
if int(n) > 50:
a.append('A')
elif int(n) > 30:
a.append('B')
elif int(n) > 10:
a.append('C')
else:
a.append('D')
a.append(z)
print(a)
更新的代码
import re
text = "May we stop to remember the 2996 people that died & the more than 6000 injured on #September11"
m = re.findall("(([a-zA-Z\\d\\,]+\\s){3})(died|injured)", text)
intensity = 'D'
for i in range(0, len(m)):
x = m[i][0]
a = []
z = m[i][2]
for n in re.findall(r"\d+\.?\d*",x):
if z == 'died':
if int(n) > 20:
intensity = 'A'
elif int(n) > 10 and ord(intensity) > 66:
intensity = 'B'
elif int(n) > 5 and ord(intensity) > 67:
intensity = 'C'
elif z == 'injured':
if int(n) > 50:
intensity = 'A'
elif int(n) > 30 and ord(intensity) > 66:
intensity = 'B'
elif int(n) > 10 and ord(intensity) > 67:
intensity = 'C'
a.append(n)
a.append(z)
print(a)
print(intensity)
['2996', 'died']
['6000', 'injured']
A