簡體   English   中英

找到 x 中大於 0.999 的第一個值的索引

[英]find the index of the first value in x that is greater than 0.999

我對這個問題感到困惑,我該如何解決這個問題?,我在下面嘗試這樣的事情,沒有索引如何將它們組合在一起? 謝謝

Q.嘗試使用 for 循環和 break 查找 x 中大於 0.999 的第一個值的索引。

提示:嘗試迭代 range(len(x))。

for x in range(len(x)):
    if x > 0.999:
        break

print("The answer is", x)```

更好的方法是使用帶有生成器表達式next()enumerate()

>>> x = [1, 3, 1.5, 7, 13, 9.2, 19]
>>> num = 2.7

>>> next(i for i, e in enumerate(x) if e > num)
1

enumerate()在遍歷列表時返回索引和元素。 因為3x中大於2.7的第一個值,所以上面的代碼返回了3的索引,即1

如果您必須使用range(len(x)) ,那么您可以將上述邏輯更新為:

>>> next(i for i in range(len(x)) if x[i] > num)
1

您的代碼的問題是,在迭代列表時,您正在檢查range()返回的值以進行比較0.999 相反,您需要將其用作索引並與x列表的相應值進行比較。 此外,您在for循環中迭代時將臨時變量用作x ,這與保存列表的變量相同。 您可以將代碼修復為:

for i in range(len(x)):
    if x[i] > 0.999:
        break

如果您真的希望使用帶中斷的 for 循環,則可以使用 enumerate。

x = [0, 0.3, 0.6, 0.8, 1, 0.4, 0.5, 6]

for i, num in enumerate(x):
    if num > 0.999:
        break
print("The answer is", i)
#The answer is 4

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM