gpt4 book ai didi

python - 拆分嵌套列表中的日期字符串以按月份对列表进行分组 - Python

转载 作者:行者123 更新时间:2023-12-03 20:41:17 25 4
gpt4 key购买 nike

这是家庭作业。我不允许使用库等。目的是学习和理解 Python 中的嵌套列表、循环和条件过滤。
我有一个嵌套的数据列表,下面是一个简短的摘录。它有 200 行长。

patients = [ ['Milos', 'Jones', '15/01/20', 'male', 'smoker', '210'],
['Delia', 'Chan', '15/03/20', 'female', 'non-smoker', '170'],
['Denise', 'Ross', '13/02/20', 'female', 'non-smoker', '150'] ]
我需要能够按性别和月份过滤列表。
将每个列表中的 [5] 元素转换为一个准备好的整数。
要按性别过滤,我编写了以下代码:
female_patients = []
for solo_patient in patients:
if solo_patient[3] == 'female':
female_patients.append(solo_patient)
我已使用以下方法将元素转换为整数:
for solo_patient in patients:
solo_patient[5] = int(solo_patient[5])

既工作又输出我需要的东西。
但是,我试图将数据拆分为字符串并转换为整数,以便我可以按月过滤。我使用了与上面类似的逻辑,但我无法使其正常工作。
for solo_patient in patients:
patients[2] = [solo_patient[2].split('/')
这给了我一个错误“IndexError: list index out of range”
如果我使用代码:
for solo_patient in patients:
patients = [solo_patient[2].split('/')
它将日期拆分为“MM”、“DD”、“YY”,但我丢失了其他数据。
当我将它拆分时,我需要将日期字符串转换为整数,然后使用 range(1,13) 循环遍历并按月分组。然后我需要对男性/女性的数据进行基本统计。我想一旦我正确过滤了列表,我就知道该怎么做。我将不胜感激任何建议、解释或 build 性的反馈。

最佳答案

让我告诉你你在这里做错了什么 -

for solo_patient in patients:
patients[2] = solo_patient[2].split('/')
这是在每个 for 循环调用中,即 0,1,2。您正在尝试更新最后一行 -> 患者 [2]。
患者[2] = ['丹尼斯'、'罗斯'、'13/02/20'、'女性'、'非吸烟者'、'150']
如果您在 for 循环中执行类似操作,则患者 [2] 的值会发生变化。
让我们这样做 -
for solo_patient in patients:
print((solo_patient[2]).split('/'))
上面的语句会给你另一个列表——
['15', '01', '20']
['15', '03', '20']
['13', '02', '20']
现在,如果您想将此值分配回特定索引处的原始列表,即每行的 2。你可以做这样的事情
for index,solo_patient in enumerate(patients):
patients[index][2] = tuple((solo_patient[2]).split('/'))

print(patients)
这将打印 -
[['Milos', 'Jones', ('15', '01', '20'), 'male', 'smoker', '210'],
['Delia', 'Chan', ('15', '03', '20'), 'female', 'non-smoker', '170'],
['Denise', 'Ross', ('13', '02', '20'), 'female', 'non-smoker', '150']]
提取月。
month_list= [] #initialize empty list
for solo_patient in patients:
date = solo_patient[2].split('/') # split and create list
month_list.append(int(date[1])) # select the value at index 1 and convert it to int and then append it to month list.

print(month_list)

关于python - 拆分嵌套列表中的日期字符串以按月份对列表进行分组 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67072615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com