Home > OS >  With the following data, create functions to perform the following step by step,
With the following data, create functions to perform the following step by step,

Time:06-06

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']]
  • Related