繁体   English   中英

使用条件 python 迭代列表中项目的索引

[英]iterating indexes of items in a list with a condition python

我想打印出“H”项目的索引,但它卡在一个项目中。

这是我的代码:

import random

def coinflipping():
    #generating 100 coin flips
    coins = []
    coin_sides = ['H', 'T']
    for i in range(100):
        coins.append(coin_sides[random.randint(0, 1)])
    return coins

sides = coinflipping()
print(sides)

for i in sides:
    if i == 'H':
        print(sides.index(i))

这是 output:

输出

这是一种方法:

import random

def coinflipping():
    #generating 100 coin flips
    coins = []
    coin_sides = ['H', 'T']
    for i in range(100):
        coins.append(coin_sides[random.randint(0, 1)])
    return coins

sides = coinflipping()
print(sides)

for i,t in enumerate(sides):
    if t == 'H':
        print(i)

在此处输入图像描述

请记住, index返回项目的第一次出现。 并且由于sides是您的 static 列表,因此它始终返回1 ,因为在您的random情况下, H首先在索引1中遇到。

您可以在此处查看枚举。

另一种方法是:

a = [np.random.choice(['H','T']) for x in range(100)]
result = [x[0] for x in enumerate(a) if x[1]=='H']

# returns a list of indexes where 'H' was flipped.

不是最好的方法,但它会起作用

import random

def coinflipping():
    #generating 100 coin flips
    coins = []
    coin_sides = ['H', 'T']
    for i in range(100):
        coins.append(coin_sides[random.randint(0, 1)])
    return coins

sides = coinflipping()
print(sides)
c = -1
for i in sides:
    c = c +1
    if i == 'H':
        print(c)

像这样:照片

尝试:

for i in range(len(sides)):
    if sides[i] == 'H':
        print(i)

暂无
暂无

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

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