我有这个数组:
listPatients = [[ "Johnson", "Fred", "N", "2763 Filibuster Drive", "Lakeland", "FL", "37643", "Q", "05/27/1935", "164-55-0726", "N"]] \
+ [[ "Williams", "Betty", "L", "701 Collage Avenue", "Orlando", "FL", "31234", "F", "11/27/1971", "948-44-1038", "Y"]] \
+ [[ "Ling", "Hector", "X", "1500 Raceway Lane", "Tampa", "FL", "32785", "M", "10/17/2003", "193-74-0274", "Y"]] \
+ [[ "Albin", "Ross", "L", "207 Daisy Avenue", "Lakeland", "FL", "32643", "M", "12/08/1990", "458-57-2867", "N"]] \
+ [[ "Anderson", "Jason", "O", "1527 Lewis Road", "Tampa", "FL", "32785", "M", "11/25/1991", "093-50-1093", "Y"]] \
+ [[ "Baca", "Edwin", "L", "25 Hunters Lane", "Lakeland", "FL", "32643", "M", "10/30/1992", "159-56-9731", "Y"]] \
+ [[ "Birner", "Dalton", "M", "851 Applebe Court", "Orlando", "FL", "31234", "M", "09/22/1993", "695-21-2340", "Y"]] \
+ [["Dominguez", "Javier", "B", "1410 Waterford Blvd", "Orlando", "FL", "31234", "M", "08/04/1994", "753-66-6482", "N"]] \
+ [[ "Aimino", "Nicolo", "S", "2379 Runners Way", "Lakeland", "FL", "32643", "M", "07/11/1995", "852-73-4196", "Y"]] \
+ [["Armstrong","Addison", "T", "46 Hawthorne Drive", "Lakeland", "FL", "32643", "M", "06/18/1996", "648-81-1456", "Y"]] \
+ [[ "Beard", "Ian", "J", "1814 Constitution Ct", "Orlando", "FL", "31234", "M", "05/28/1997", "879-61-1829", "N"]] \
+ [[ "Calderon", "Yamil", "C", "345 Cigar Row", "Tampa", "FL", "32785", "M", "04/07/1998", "123-87-6431", "Y"]] \
+ [[ "Carter", "Thomas", "P", "896 Pine Avenue", "Tampa", "FL", "32785", "M", "03/12/1999", "248-65-3197", "Y"]] \
+ [[ "Chaname", "Bryan", "D", "24 Blue Belt Drive", "Lakeland", "FL", "32643", "M", "02/23/2000", "741-85-9632", "Y"]] \
+ [[ "Chaney", "Chaney", "Z", "2589 College Court",
"Orlando", "FL", "31234", "M", "01/15/2001", "963-25-7418", "Y"]]
我想追加年龄;这是采取生育年份后的计算(指数(数组(元素[7])))并从2015年减去它:
for patients in range(len(listPatients)):
YOB=listPatients[patients][8][6]+listPatients[patients][8][7]
+listPatients[patients][8][8]+listPatients[patients][8][9]
age= currentYear-int(YOB)
story4=patients.append(age)
输出说我不能附加整数。我该怎么办?
答案 0 :(得分:1)
在您的代码中,patients
是列表列表中的索引,而不是子列表本身,即您尝试附加到patients.append(age)
的数字!相反,尝试迭代listPatients
本身。此外,您可以使用切片[6:]
而不是连接年份中的所有单个字符,或使用patients[8].split('/')[2]
来获取年份。
for patients in listPatients:
YOB = patients[8][6:] # or patients[8].split('/')[2]
age = currentYear - int(YOB)
patients.append(age)
此外,append
不会返回任何内容,因此无论story4
应该是什么,它都将始终为None
。
最后,您可以编写多行列表,如下所示:
listPatients = [[ "Johnson", ... stuff ..., "164-55-0726", "N"],
... many more lines ...
[ "Chaney", ... stuff ..., "963-25-7418", "Y"]]
答案 1 :(得分:1)
没有理由在这里使用range
进行迭代。
for patient in listPatients:
YOB=patient[8][-4:]
age= currentYear-int(YOB)
patient.append(age)
story4=age
答案 2 :(得分:0)
在您的代码段中,patients
为int
,其中没有append
方法。
>>> range(len(['x','y','z']))
[0, 1, 2]
范围迭代器中的每个项都是一个整数。
答案 3 :(得分:-1)
您想要附加到列表患者元素,而不是它的范围:
for patients in range(len(listPatients)):
YOB=listPatients[patients][8][6]+listPatients[patients][8][7]+listPatients[patients][8][8]+listPatients[patients][8][9]
age= currentYear-int(YOB)
story4=listPatients[patients].append(age)