Data:
[
'[email protected]',
'[email protected]',
'[email protected]',
'[email protected]',
'[email protected]',
'[email protected]',
'[email protected]',
'[email protected]',
'[email protected]',
'[email protected]',
'[email protected]',
'[email protected]',
'[email protected]',
'[email protected]',
'[email protected]',
'[email protected]',
'[email protected]',
'[email protected]',
'[email protected]',
'[email protected]'
]
Data format: [id-firstname-lastname-email-gender-salary]
- Create sorted list according to first name
- Separate email is and email provider for each member
- Calculate tax paid by each member which is 10% of their salary, if salary = 0 place that member in separate list with tax value default to NaN
- Transform gender to F or M instad of full word
The final output should be 2 lists, one with transformed data and one with members with salary = 0
Output:
List1 = [[1, “Willa”, “Northbridge”, “wnorthbridge0”, “fema.gov”, “F”, 1215, 121.5], ………………]
List2 = [[4, “Der”, “Bockett”, “dbockett3”, “elpais.com”, “M”, 0, “NaN”], ………………]
CodePudding user response:
I would say give it a try with regular expression using groups to match? You can use if-statements to check whether it's a female or male.
Great method is to use www.regex101.com. If you past your list and use following regex code, you will see you can find all groups needed for your new list(s).
(\d )-(.*?)-(.*?)-(.*?)@.*?-(\w*)-(\d*)
Or use this JSON :)
[
[
{
"content": "[email protected]",
"isParticipating": true,
"groupNum": 0,
"startPos": 3,
"endPos": 57
},
{
"content": "1",
"isParticipating": true,
"groupNum": 1,
"startPos": 3,
"endPos": 4
},
{
"content": "Willa",
"isParticipating": true,
"groupNum": 2,
"startPos": 5,
"endPos": 10
},
{
"content": "Northbridge",
"isParticipating": true,
"groupNum": 3,
"startPos": 11,
"endPos": 22
},
{
"content": "wnorthbridge0",
"isParticipating": true,
"groupNum": 4,
"startPos": 23,
"endPos": 36
},
{
"content": "Female",
"isParticipating": true,
"groupNum": 5,
"startPos": 46,
"endPos": 52
},
{
"content": "1215",
"isParticipating": true,
"groupNum": 6,
"startPos": 53,
"endPos": 57
}
],
[
{
"content": "[email protected]",
"isParticipating": true,
"groupNum": 0,
"startPos": 62,
"endPos": 116
},
{
"content": "2",
"isParticipating": true,
"groupNum": 1,
"startPos": 62,
"endPos": 63
},
{
"content": "Casie",
"isParticipating": true,
"groupNum": 2,
"startPos": 64,
"endPos": 69
},
{
"content": "Arundel",
"isParticipating": true,
"groupNum": 3,
"startPos": 70,
"endPos": 77
},
{
"content": "carundel1",
"isParticipating": true,
"groupNum": 4,
"startPos": 78,
"endPos": 87
},
{
"content": "Polygender",
"isParticipating": true,
"groupNum": 5,
"startPos": 101,
"endPos": 111
},
{
"content": "7059",
"isParticipating": true,
"groupNum": 6,
"startPos": 112,
"endPos": 116
}
],
[
{
"content": "[email protected]",
"isParticipating": true,
"groupNum": 0,
"startPos": 121,
"endPos": 173
},
{
"content": "3",
"isParticipating": true,
"groupNum": 1,
"startPos": 121,
"endPos": 122
},
{
"content": "Urbanus",
"isParticipating": true,
"groupNum": 2,
"startPos": 123,
"endPos": 130
},
{
"content": "Madrell",
"isParticipating": true,
"groupNum": 3,
"startPos": 131,
"endPos": 138
},
{
"content": "umadrell2",
"isParticipating": true,
"groupNum": 4,
"startPos": 139,
"endPos": 148
},
{
"content": "Male",
"isParticipating": true,
"groupNum": 5,
"startPos": 164,
"endPos": 168
},
{
"content": "4150",
"isParticipating": true,
"groupNum": 6,
"startPos": 169,
"endPos": 173
}
],
[
{
"content": "[email protected]",
"isParticipating": true,
"groupNum": 0,
"startPos": 178,
"endPos": 219
},
{
"content": "4",
"isParticipating": true,
"groupNum": 1,
"startPos": 178,
"endPos": 179
},
{
"content": "Der",
"isParticipating": true,
"groupNum": 2,
"startPos": 180,
"endPos": 183
},
{
"content": "Bockett",
"isParticipating": true,
"groupNum": 3,
"startPos": 184,
"endPos": 191
},
{
"content": "dbockett3",
"isParticipating": true,
"groupNum": 4,
"startPos": 192,
"endPos": 201
},
{
"content": "Male",
"isParticipating": true,
"groupNum": 5,
"startPos": 213,
"endPos": 217
},
{
"content": "0",
"isParticipating": true,
"groupNum": 6,
"startPos": 218,
"endPos": 219
}
],
[
{
"content": "[email protected]",
"isParticipating": true,
"groupNum": 0,
"startPos": 224,
"endPos": 281
},
{
"content": "5",
"isParticipating": true,
"groupNum": 1,
"startPos": 224,
"endPos": 225
},
{
"content": "Gilbertine",
"isParticipating": true,
"groupNum": 2,
"startPos": 226,
"endPos": 236
},
{
"content": "Bligh",
"isParticipating": true,
"groupNum": 3,
"startPos": 237,
"endPos": 242
},
{
"content": "gbligh4",
"isParticipating": true,
"groupNum": 4,
"startPos": 243,
"endPos": 250
},
{
"content": "Genderqueer",
"isParticipating": true,
"groupNum": 5,
"startPos": 265,
"endPos": 276
},
{
"content": "5853",
"isParticipating": true,
"groupNum": 6,
"startPos": 277,
"endPos": 281
}
],
[
{
"content": "[email protected]",
"isParticipating": true,
"groupNum": 0,
"startPos": 286,
"endPos": 338
},
{
"content": "6",
"isParticipating": true,
"groupNum": 1,
"startPos": 286,
"endPos": 287
},
{
"content": "Paul",
"isParticipating": true,
"groupNum": 2,
"startPos": 288,
"endPos": 292
},
{
"content": "Tinman",
"isParticipating": true,
"groupNum": 3,
"startPos": 293,
"endPos": 299
},
{
"content": "ptinman5",
"isParticipating": true,
"groupNum": 4,
"startPos": 300,
"endPos": 308
},
{
"content": "Male",
"isParticipating": true,
"groupNum": 5,
"startPos": 329,
"endPos": 333
},
{
"content": "7142",
"isParticipating": true,
"groupNum": 6,
"startPos": 334,
"endPos": 338
}
],
[
{
"content": "[email protected]",
"isParticipating": true,
"groupNum": 0,
"startPos": 343,
"endPos": 390
},
{
"content": "7",
"isParticipating": true,
"groupNum": 1,
"startPos": 343,
"endPos": 344
},
{
"content": "Daffy",
"isParticipating": true,
"groupNum": 2,
"startPos": 345,
"endPos": 350
},
{
"content": "Fazan",
"isParticipating": true,
"groupNum": 3,
"startPos": 351,
"endPos": 356
},
{
"content": "dfazan6",
"isParticipating": true,
"groupNum": 4,
"startPos": 357,
"endPos": 364
},
{
"content": "Female",
"isParticipating": true,
"groupNum": 5,
"startPos": 381,
"endPos": 387
},
{
"content": "71",
"isParticipating": true,
"groupNum": 6,
"startPos": 388,
"endPos": 390
}
],
[
{
"content": "[email protected]",
"isParticipating": true,
"groupNum": 0,
"startPos": 395,
"endPos": 441
},
{
"content": "8",
"isParticipating": true,
"groupNum": 1,
"startPos": 395,
"endPos": 396
},
{
"content": "Bryan",
"isParticipating": true,
"groupNum": 2,
"startPos": 397,
"endPos": 402
},
{
"content": "Dumigan",
"isParticipating": true,
"groupNum": 3,
"startPos": 403,
"endPos": 410
},
{
"content": "bdumigan7",
"isParticipating": true,
"groupNum": 4,
"startPos": 411,
"endPos": 420
},
{
"content": "Male",
"isParticipating": true,
"groupNum": 5,
"startPos": 432,
"endPos": 436
},
{
"content": "3444",
"isParticipating": true,
"groupNum": 6,
"startPos": 437,
"endPos": 441
}
],
[
{
"content": "[email protected]",
"isParticipating": true,
"groupNum": 0,
"startPos": 446,
"endPos": 492
},
{
"content": "9",
"isParticipating": true,
"groupNum": 1,
"startPos": 446,
"endPos": 447
},
{
"content": "Wilhelm",
"isParticipating": true,
"groupNum": 2,
"startPos": 448,
"endPos": 455
},
{
"content": "Brattell",
"isParticipating": true,
"groupNum": 3,
"startPos": 456,
"endPos": 464
},
{
"content": "wbrattell8",
"isParticipating": true,
"groupNum": 4,
"startPos": 465,
"endPos": 475
},
{
"content": "Male",
"isParticipating": true,
"groupNum": 5,
"startPos": 483,
"endPos": 487
},
{
"content": "2062",
"isParticipating": true,
"groupNum": 6,
"startPos": 488,
"endPos": 492
}
],
[
{
"content": "[email protected]",
"isParticipating": true,
"groupNum": 0,
"startPos": 497,
"endPos": 544
},
{
"content": "10",
"isParticipating": true,
"groupNum": 1,
"startPos": 497,
"endPos": 499
},
{
"content": "Garey",
"isParticipating": true,
"groupNum": 2,
"startPos": 500,
"endPos": 505
},
{
"content": "Gadson",
"isParticipating": true,
"groupNum": 3,
"startPos": 506,
"endPos": 512
},
{
"content": "ggadson9",
"isParticipating": true,
"groupNum": 4,
"startPos": 513,
"endPos": 521
},
{
"content": "Male",
"isParticipating": true,
"groupNum": 5,
"startPos": 535,
"endPos": 539
},
{
"content": "1036",
"isParticipating": true,
"groupNum": 6,
"startPos": 540,
"endPos": 544
}
],
[
{
"content": "[email protected]",
"isParticipating": true,
"groupNum": 0,
"startPos": 549,
"endPos": 594
},
{
"content": "11",
"isParticipating": true,
"groupNum": 1,
"startPos": 549,
"endPos": 551
},
{
"content": "Mason",
"isParticipating": true,
"groupNum": 2,
"startPos": 552,
"endPos": 557
},
{
"content": "Beartup",
"isParticipating": true,
"groupNum": 3,
"startPos": 558,
"endPos": 565
},
{
"content": "mbeartupa",
"isParticipating": true,
"groupNum": 4,
"startPos": 566,
"endPos": 575
},
{
"content": "Male",
"isParticipating": true,
"groupNum": 5,
"startPos": 585,
"endPos": 589
},
{
"content": "6794",
"isParticipating": true,
"groupNum": 6,
"startPos": 590,
"endPos": 594
}
],
[
{
"content": "[email protected]",
"isParticipating": true,
"groupNum": 0,
"startPos": 599,
"endPos": 645
},
{
"content": "12",
"isParticipating": true,
"groupNum": 1,
"startPos": 599,
"endPos": 601
},
{
"content": "Cristina",
"isParticipating": true,
"groupNum": 2,
"startPos": 602,
"endPos": 610
},
{
"content": "Sayes",
"isParticipating": true,
"groupNum": 3,
"startPos": 611,
"endPos": 616
},
{
"content": "csayesb",
"isParticipating": true,
"groupNum": 4,
"startPos": 617,
"endPos": 624
},
{
"content": "Female",
"isParticipating": true,
"groupNum": 5,
"startPos": 634,
"endPos": 640
},
{
"content": "6756",
"isParticipating": true,
"groupNum": 6,
"startPos": 641,
"endPos": 645
}
],
[
{
"content": "[email protected]",
"isParticipating": true,
"groupNum": 0,
"startPos": 650,
"endPos": 700
},
{
"content": "13",
"isParticipating": true,
"groupNum": 1,
"startPos": 650,
"endPos": 652
},
{
"content": "Deirdre",
"isParticipating": true,
"groupNum": 2,
"startPos": 653,
"endPos": 660
},
{
"content": "Masham",
"isParticipating": true,
"groupNum": 3,
"startPos": 661,
"endPos": 667
},
{
"content": "dmashamc",
"isParticipating": true,
"groupNum": 4,
"startPos": 668,
"endPos": 676
},
{
"content": "Female",
"isParticipating": true,
"groupNum": 5,
"startPos": 689,
"endPos": 695
},
{
"content": "6690",
"isParticipating": true,
"groupNum": 6,
"startPos": 696,
"endPos": 700
}
],
[
{
"content": "[email protected]",
"isParticipating": true,
"groupNum": 0,
"startPos": 705,
"endPos": 767
},
{
"content": "14",
"isParticipating": true,
"groupNum": 1,
"startPos": 705,
"endPos": 707
},
{
"content": "Rosabelle",
"isParticipating": true,
"groupNum": 2,
"startPos": 708,
"endPos": 717
},
{
"content": "Antognetti",
"isParticipating": true,
"groupNum": 3,
"startPos": 718,
"endPos": 728
},
{
"content": "rantognettid",
"isParticipating": true,
"groupNum": 4,
"startPos": 729,
"endPos": 741
},
{
"content": "Female",
"isParticipating": true,
"groupNum": 5,
"startPos": 756,
"endPos": 762
},
{
"content": "3763",
"isParticipating": true,
"groupNum": 6,
"startPos": 763,
"endPos": 767
}
],
[
{
"content": "[email protected]",
"isParticipating": true,
"groupNum": 0,
"startPos": 772,
"endPos": 826
},
{
"content": "15",
"isParticipating": true,
"groupNum": 1,
"startPos": 772,
"endPos": 774
},
{
"content": "Edy",
"isParticipating": true,
"groupNum": 2,
"startPos": 775,
"endPos": 778
},
{
"content": "Lochhead",
"isParticipating": true,
"groupNum": 3,
"startPos": 779,
"endPos": 787
},
{
"content": "elochheade",
"isParticipating": true,
"groupNum": 4,
"startPos": 788,
"endPos": 798
},
{
"content": "Female",
"isParticipating": true,
"groupNum": 5,
"startPos": 816,
"endPos": 822
},
{
"content": "909",
"isParticipating": true,
"groupNum": 6,
"startPos": 823,
"endPos": 826
}
],
[
{
"content": "[email protected]",
"isParticipating": true,
"groupNum": 0,
"startPos": 831,
"endPos": 879
},
{
"content": "16",
"isParticipating": true,
"groupNum": 1,
"startPos": 831,
"endPos": 833
},
{
"content": "Jenifer",
"isParticipating": true,
"groupNum": 2,
"startPos": 834,
"endPos": 841
},
{
"content": "Seely",
"isParticipating": true,
"groupNum": 3,
"startPos": 842,
"endPos": 847
},
{
"content": "jseelyf",
"isParticipating": true,
"groupNum": 4,
"startPos": 848,
"endPos": 855
},
{
"content": "Female",
"isParticipating": true,
"groupNum": 5,
"startPos": 868,
"endPos": 874
},
{
"content": "7275",
"isParticipating": true,
"groupNum": 6,
"startPos": 875,
"endPos": 879
}
],
[
{
"content": "[email protected]",
"isParticipating": true,
"groupNum": 0,
"startPos": 884,
"endPos": 933
},
{
"content": "17",
"isParticipating": true,
"groupNum": 1,
"startPos": 884,
"endPos": 886
},
{
"content": "Elenore",
"isParticipating": true,
"groupNum": 2,
"startPos": 887,
"endPos": 894
},
{
"content": "Filipyev",
"isParticipating": true,
"groupNum": 3,
"startPos": 895,
"endPos": 903
},
{
"content": "efilipyevg",
"isParticipating": true,
"groupNum": 4,
"startPos": 904,
"endPos": 914
},
{
"content": "Female",
"isParticipating": true,
"groupNum": 5,
"startPos": 925,
"endPos": 931
},
{
"content": "0",
"isParticipating": true,
"groupNum": 6,
"startPos": 932,
"endPos": 933
}
],
[
{
"content": "[email protected]",
"isParticipating": true,
"groupNum": 0,
"startPos": 938,
"endPos": 989
},
{
"content": "18",
"isParticipating": true,
"groupNum": 1,
"startPos": 938,
"endPos": 940
},
{
"content": "Gavra",
"isParticipating": true,
"groupNum": 2,
"startPos": 941,
"endPos": 946
},
{
"content": "Enbury",
"isParticipating": true,
"groupNum": 3,
"startPos": 947,
"endPos": 953
},
{
"content": "genburyh",
"isParticipating": true,
"groupNum": 4,
"startPos": 954,
"endPos": 962
},
{
"content": "Female",
"isParticipating": true,
"groupNum": 5,
"startPos": 978,
"endPos": 984
},
{
"content": "3969",
"isParticipating": true,
"groupNum": 6,
"startPos": 985,
"endPos": 989
}
],
[
{
"content": "[email protected]",
"isParticipating": true,
"groupNum": 0,
"startPos": 994,
"endPos": 1040
},
{
"content": "19",
"isParticipating": true,
"groupNum": 1,
"startPos": 994,
"endPos": 996
},
{
"content": "Fabiano",
"isParticipating": true,
"groupNum": 2,
"startPos": 997,
"endPos": 1004
},
{
"content": "Bison",
"isParticipating": true,
"groupNum": 3,
"startPos": 1005,
"endPos": 1010
},
{
"content": "fbisoni",
"isParticipating": true,
"groupNum": 4,
"startPos": 1011,
"endPos": 1018
},
{
"content": "Male",
"isParticipating": true,
"groupNum": 5,
"startPos": 1031,
"endPos": 1035
},
{
"content": "2831",
"isParticipating": true,
"groupNum": 6,
"startPos": 1036,
"endPos": 1040
}
],
[
{
"content": "[email protected]",
"isParticipating": true,
"groupNum": 0,
"startPos": 1045,
"endPos": 1097
},
{
"content": "20",
"isParticipating": true,
"groupNum": 1,
"startPos": 1045,
"endPos": 1047
},
{
"content": "Kinnie",
"isParticipating": true,
"groupNum": 2,
"startPos": 1048,
"endPos": 1054
},
{
"content": "Dimbleby",
"isParticipating": true,
"groupNum": 3,
"startPos": 1055,
"endPos": 1063
},
{
"content": "kdimblebyj",
"isParticipating": true,
"groupNum": 4,
"startPos": 1064,
"endPos": 1074
},
{
"content": "Male",
"isParticipating": true,
"groupNum": 5,
"startPos": 1088,
"endPos": 1092
},
{
"content": "8034",
"isParticipating": true,
"groupNum": 6,
"startPos": 1093,
"endPos": 1097
}
]
]
CodePudding user response:
withSalary = []
withoutSalary = []
for person in persons:
# Split Person to List
person = person.split('-')
# Split Email to List
mail = person[3].split('@')
newPerson = [person[0], person[1], person[2], mail[0], mail[1], person[4][0], int(person[5]), int(person[5]) * 0.1]
if newPerson[6] == 0:
newPerson[7] = 'NaN'
withoutSalary.append(newPerson)
else:
withSalary.append(newPerson)
withSalary.sort(key=lambda person: person[1])
withoutSalary.sort(key=lambda person: person[1])
print(withSalary)
print(withoutSalary)
Result :
[['8', 'Bryan', 'Dumigan', 'bdumigan7', 'disqus.com', 'M', 3444, 344.40000000000003], ['2', 'Casie', 'Arundel', 'carundel1', 'amazon.co.jp', 'P', 7059, 705.9000000000001]]
[['4', 'Der', 'Bockett', 'dbockett3', 'elpais.com', 'M', 0, 'NaN'], ['17', 'Elenore', 'Filipyev', 'efilipyevg', 'tmall.com', 'F', 0, 'NaN']]