繁体   English   中英

遍历列表时跳过项目

[英]skip items while iterating over list

我一直在从一个 txt 文件中读取 class 个对象并将信息存储在一个列表中。 我的问题是如果我想打印出第一个属性但跳过一行是否可能。 假设文本文件是这样的:

    Activity Time  Location
    Football  8-9  Pitch
    Basketball 9-10  Gym
    Lunch  11-12  Home
    Reading  13-14  Library

我想做一个 for 循环,给我列表的第一个属性,但跳过一行。 例如写:

for i in list:
    print(i.activity) 

#gives me all the activities, But I want to get Football, lunch, 阅读没有篮球

这可能吗? 如果是这样,我将不胜感激一个简单的代码。 我不需要任何高级的东西

当然可以:

在你的循环中添加条件

i = 0
for item in list:
    if i!=1:
        print (item.activity)
    i += 1
        
    

所以在第二次迭代中不会打印任何内容

下面的示例只是读取文本字符串 ( text_ ),并使用list.pop() function 删除第二个元素(在标题之后)。 在这种情况下,“篮球”行。

然后,另一个简单的列表理解创建包含每行第一个元素的activities列表,并跳过 header 行。

示例代码:

text = [i.strip().split(',') for i in text_]
text.pop(2)

activities = [i[0] for i in text[1:]]

Output:

['Football', 'Lunch', 'Reading']

设置:

注意:功能不需要此块。 仅用于从字符串创建text_列表。

import io

txt = """Activity,Time,Location
Football,8-9,Pitch
Basketball,9-10,Gym
Lunch,11-12,Home
Reading,13-14,Library
"""

with io.StringIO(txt) as h:
    text_ = list(h)

是的,但是你应该命名你的 python 列表而不是list ,因为list是 python 中的关键字:

row_to_skip=1

for i in range (len (my_list)):
    item=my_list[i]
    if (i==row_to_skip):
        continue
    print(item.activity)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM