如何在python循环中排除一些索引?

2024-06-26 13:45:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一份清单:

"data" : [ 
[ 1, "EEBC92F4-DA8C-4B58-8730-3119F6B1C045", 1, 1386882230, "399231", 1386882230, "399231", "{\n}", "2010", "NON-HISPANIC BLACK", "MALE", "HUMAN IMMUNODEFICIENCY VIRUS DISEASE", "297", "5" ], 
[ 2, "84C91A4A-19E2-4AD2-9493-17B84707CA4E", 2, 1386882230, "399231", 1386882230, "399231", "{\n}", "2010", "NON-HISPANIC BLACK", "MALE", "INFLUENZA AND PNEUMONIA", "201", "3" ]]

我想让他们这样:

^{pr2}$

当然,我会得到一切。在

我只需要今年(2010年,2011年)及以后的项目。在

我怎样才能得到它们?在


Tags: anddatamaleblackhumannondiseasevirus
3条回答
for a in mylist:
    if int(a[8]) > 2009:
        for b in a:
            print b,
        print

这将遍历mylist(从屏蔽内置的list重命名)中的每个项,检查索引8处的元素是否大于2009,然后打印出由单个空格分隔的项的元素。如果您希望对输出有更多的控制,请使用字符串格式。在

l = [ [ 1, "EEBC92F4-DA8C-4B58-8730-3119F6B1C045", 1, 1386882230, "399231", 1386882230, "399231", "{\n}", "2010", "NON-HISPANIC BLACK", "MALE", "HUMAN IMMUNODEFICIENCY VIRUS DISEASE", "297", "5" ],
    [ 2, "84C91A4A-19E2-4AD2-9493-17B84707CA4E", 2, 1386882230, "399231", 1386882230, "399231", "{\n}", "2012", "NON-HISPANIC BLACK", "MALE", "INFLUENZA AND PNEUMONIA", "2011", "3" ]]

#get index of the year
l[0].index('2010') #8
l[1].index('2012') #8

如果您只想打印,您可以:

^{pr2}$

这将给出以下输出:

2010
NON-HISPANIC BLACK
MALE
HUMAN IMMUNODEFICIENCY VIRUS DISEASE
297
5
2012
NON-HISPANIC BLACK
MALE
INFLUENZA AND PNEUMONIA
2011
3

不完全确定这是否是你想要的,但是你写了你需要在相应年份之后的所有信息(“我指的是每一行的年份之后的所有信息”,你在评论中对James的回复),这样你就可以首先提取这些元素并将它们存储在一个新的列表中(以防你想做其他的事情)除印刷外):

lmod = [x[8:] for x in l]

lmod然后如下所示:

[['2010',
  'NON-HISPANIC BLACK',
  'MALE',
  'HUMAN IMMUNODEFICIENCY VIRUS DISEASE',
  '297',
  '5'],
 ['2012',
  'NON-HISPANIC BLACK',
  'MALE',
  'INFLUENZA AND PNEUMONIA',
  '2011',
  '3']]

现在可以像您那样打印:

for sl in lmod:
   for el in sl:
       print el

输出:

2010
NON-HISPANIC BLACK
MALE
HUMAN IMMUNODEFICIENCY VIRUS DISEASE
297
5
2012
NON-HISPANIC BLACK
MALE
INFLUENZA AND PNEUMONIA
2011
3

这就是你要找的吗?在

你没有给出一个很好的例子,但是你可以使用一个生成器:

filteredList = (x for x in list if int(x[8]) >= 2010)
for a in filteredList:
    for b in a:
        print b

或者,你可以更直接地写:

^{pr2}$

不过,您可能希望这里的“记录”是dicts,而不是列表。在

相关问题 更多 >