Python for 循环和 if 语句对数据进行排序

发布于 2024-12-12 09:28:11 字数 253 浏览 1 评论 0原文

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]?这就是我想要的。谢谢你!

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]

How do I go about getting to this store new data as [2,4]? This is what I want. Thank you!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

夜唯美灬不弃 2024-12-19 09:28:11

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

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

Use enumerate() while looping. This will track both, the current item and its index:

[index for index, x in enumerate(data) if x == "None"]
孤蝉 2024-12-19 09:28:11
for idx, item in enumerate(data):
    if item == 'None':
        new_data.append(idx)

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

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

better yet, just use a list comprehension as in Sven's answer

寄风 2024-12-19 09:28:11

尝试:

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

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

Try:

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

In [2]: [i for i,val in enumerate(data) if val == 'None']
Out[2]: [2, 4]
如此安好 2024-12-19 09:28:11

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

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

这应该给你所需的输出

查看 Sven 的答案

data.index(item) only returns the position of first occurance of the item in your list.
You could simply do this:

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

this should give you the required output

OR

check out Sven's answer

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文