Python为循环和if语句排序数据

时间:2011-10-28 10:17:06

标签: python if-statement for-loop

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 个答案:

答案 0 :(得分:6)

循环时使用enumerate()。这将跟踪当前项目及其索引:

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

答案 1 :(得分:2)

for idx, item in enumerate(data):
    if item == 'None':
        new_data.append(idx)

更好的是,只需使用列表理解,如Sven的回答

答案 2 :(得分: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]

答案 3 :(得分:1)

data.index(item)仅返回列表中项目首次出现的位置。 你可以这样做:

for i in range(0,len(data)):
  if data[i] == 'None':
    new_data.append(i)

这应该为您提供所需的输出

OR

查看Sven的回答