【问题标题】:Indexing in python (enumeration method)python中的索引(枚举方法)
【发布时间】:2022-01-16 18:37:20
【问题描述】:

晚上轻问:D

string  = 'S40S'
for char in string:
    print(string.index(char))

#Returns
0
1
2
0

如果我想接收某个字符串的索引。为什么最后一个 Char 的索引是 0 而不是 3???

【问题讨论】:

  • 不要永远这样做。这是 1) 正如您所发现的那样,不正确和 2) 效率极低(使您的算法至少是二次时间)
  • "为什么最后一个 Char 的索引是 0 而不是 3???"因为,这就是 index 方法的工作原理。它返回您传递给string.index 的子字符串的第一个索引。为什么您期望 string.index("S") 返回两个不同的值?
  • 你的标题、描述和问题都是三个不同的东西,你问的是什么?

标签: python indexing


【解决方案1】:

因为index 取第一个值。
所以你的循环会遍历字符,最后遇到一个 S。

它运行'S40S'.index('S'),结果为0——S的第一次相遇。

相反,您可以使用:

string  = 'S40S'
for i, char in enumerate(string):
    print(string[i])

或者更简单,如果你不需要char

string  = 'S40S'
for i in range(len(string)):
    print(string[i])

【讨论】:

    猜你喜欢
    • 2016-12-08
    • 1970-01-01
    • 1970-01-01
    • 2022-06-25
    • 2021-04-18
    • 2015-08-08
    • 1970-01-01
    • 2013-04-08
    • 1970-01-01
    相关资源
    最近更新 更多