I have a function max_population
which should output ('eu_kyiv', 24834)
. But output('eu_kyiv', '24834')
How can I do that ('24834')
outputted as int
My code:
import re
def max_population(data):
a = []
for i in data:
b = re.findall(r',\S+_\S+,[0-9]+', i)
a += [[ b for b in i.split(',') if b] for i in b]
return max(a, key=lambda x: int(x[1]))
data = ["id,name,poppulation,is_capital",
"3024,eu_kyiv,24834,y",
"3025,eu_volynia,20231,n",
"3026,eu_galych,23745,n",
"4892,me_medina,18038,n",
"4401,af_cairo,18946,y",
"4700,me_tabriz,13421,n",
"4899,me_bagdad,22723,y",
"6600,af_zulu,09720,n"]
print(max_population(data))
I tried
for i in data:
b = re.findall(r',\S+_\S+,[0-9]+', i)
a += [[ int(b) for b in i.split(',') if b] for i in b]
return max(a, key=lambda x: int(x[1]))
But output error ValueError: invalid literal for int() with base 10: 'eu_kyiv'
It is important to use re module
import re
def max_population(data):
a = []
for i in data:
b = re.findall(r',\S+_\S+,[0-9]+', i)
a += [[b for b in i.split(',') if b] for i in b]
maximum = max(a, key=lambda x: int(x[1]))
return [maximum[0],int(maximum[1])]