일부 데이터에서 특정 요소의 색인을 가져 오려고합니다. 나는 'b'와 'c'의 모든 인스턴스를 찾고 'position_b'와 'position_c'에 인덱스를 넣고 싶습니다. 여기에 내가 작성한 코드와 함께 오류가 점점 오전 : 위의 몇 줄의 b 또는 c가 없습니다 데이터에 나타낸 바와 같이Python AttributeError : 'list'객체에 'startswith'속성이 없습니다.
data = [['a', 'b', 'c'], ['a', 'a', 'a'], ['b', 'c', 'c'], ['d', 'b', 'f'], ['g', 'c', 'i']]
position_b, position_c = [], []
for line in data:
if data.startswith("b"):
position_b.append(line.index("b"))
elif data.startswith("c"):
position_c.append(line.index("c"))
, 일부 라인은 모두이있을 것이다.
처음에는 'index'만 시도했지만 일부 목록에는 'b'또는 'c'가 없으므로 'substring not found'오류가 발생했습니다. 그럼 대답은 here에서 'startswith'를 시도했는데 'AttributeError :'list '객체에'startswith '속성이 없습니다.'이제 startswith가 목록 객체에서 작동하지 않는다는 것을 알게되었습니다. 내 목록에서 'b'또는 'c'를 찾아 색인을 생성하기 위해 대신 무엇을 사용할 수 있습니까?
원하는 출력은 : 당신이 startswith
을 사용할 것으로 예상 있지만 목록 에 관계없이, 그 위치를 특정 항목을 포함하는 경우 당신은 그냥 알고 싶어처럼
position_b = [1, 0, 1]
position_c = [2, 1, 2, 1]
목록이 startswith 방법이 없습니다 . 이 질문에 대해서는 설명서를 참조하십시오. – Carcigenicate
코드에서 오류를 재현하는 데 필요한 모든 것을 제거하십시오. line.split()은'[ 'a', 'b', 'c'] [ 'd', 'b', 'f'] [ 'g', 'c', ' i ']'(어쨌든 문자열입니까?) 정확한 정보를 제공해주십시오. 간단히 말해서 (gzip, sys 및 수정하려고하는 예외와 관련없는 모든 것) [mcve]를 제공하십시오. – MSeifert
데이터는 문자열 목록 또는 목록 목록과 같습니다 : 예 :'data = [[ 'a', 'b', 'c'], [ 'a', 'a', 'a']]'? –