Python中循环和条件语句的数据排序

3 投票
4 回答
595 浏览
提问于 2025-04-17 05:10
data = ['cat', 'dog', 'None', 'Turtle', 'None']
new_data = []
for item in data:
    if item == 'None':
        new_data.append(data.index(item))
print new_data

>> [2,2]

我该怎么做才能把这个新数据存储成 [2,4] 这样的格式呢?这正是我想要的。谢谢!

4 个回答

1

试试这个:

In [1]: data = ['cat', 'dog', 'None', 'Turtle', 'None']

In [2]: [i for i,val in enumerate(data) if val == 'None']
Out[2]: [2, 4]
2
for idx, item in enumerate(data):
    if item == 'None':
        new_data.append(idx)

更好的是,直接使用列表推导式,就像Sven的回答那样。

6

在循环的时候,可以使用 enumerate() 这个函数。它可以同时记录当前项和它的位置(索引):

[index for index, x in enumerate(data) if x == "None"]

撰写回答