列表中字符串中字符的Python位置

时间:2015-01-29 22:02:35

标签: python list loops

所以,说我有一个包含5个字符串的列表。字符串长度为七个字符。

list = ["000000A", "000001A", "000002B", "000003C", "000004C"]

现在,有了这个列表,我想找到字符串在第7个字符等于A的列表中的位置。然后我想找到字符串在第7个字符等于的列表中的位置B.然后最后是C。

我正在思考:

letters = ["A","B","C"]
for i in range(len(letters)):
   for j in range(len(list)):
           for k, l in enumerate(list[j][6]):
               if l == (letters[i]):
                   print(k)

有人能指出我正确的方向或解释为什么这会起作用吗?

1 个答案:

答案 0 :(得分:1)

lst = ["000000A", "000001A", "000002B", "000003C", "000004C"]
a = ([i for i,s in enumerate(lst) if s[6] == "A"])

所以要全部三个:

a = []
b = []
c= []
for i, s in enumerate(lst):
    if s[6] == "A":
        a.append(i)
    elif s[6] == "B":
        b.append(i)
    elif s[6] == "C":
        c.append(i)

或者您可以使用s [6]作为关键字将所有内容存储在defaultdict中:

from collections import defaultdict

inds = defaultdict(list)
for i, s in enumerate(lst):
    inds[s[6]].append(i)

print(inds)
defaultdict(<type 'list'>, {'A': [0, 1], 'C': [3, 4], 'B': [2]})