파이썬 2.7을 사용하여이 코드 줄을 줄이거 나 최적화하고 싶지만 아무 문제가 없습니다.Python 오류 코드 줄을 최적화하려고 할 때
나는 단지
B = [[0, Act1, XX1, u'P-Um'],.....[0, Act100, ZZ30, u'D- MOM']]
- 이
지금이 코드를 작성했습니다
for i in range(len(B)):
x.append(B[i][3])
A = [i.split('-',1)[1] for i in x]
#A=[u'Um', u' LY', u' NO', ......, u' MOM']
for i in range(len(B)):
A[i].lstrip()
p = []
for i in range(len(B)):
p.append(A[i].lstrip())
for i in range(len(B)):
B[i][3] = p[i]
다음과 같이 짧게 만들려고하면 두 가지 오류가 발생합니다.
#Short version
for i in range(len(B)):
x.append(B[i][3])
A = [i.split('-',1)[1], x] #Error:AttributeError: 'int' object has no attribute 'split'
B[i][3].append(A[i].lstrip()) #Error:AttributeError: 'unicode' object has no attribute 'append'
나는 오류를 풀기 위해 여러 방법을 시도하지만 여전히 작동하지 않습니다. 제발 도와 주실 래요? 윗부분을 오류없이 짧게 만들 수 있다고 생각하십니까?
대단히 감사합니다.
정지를 중첩 루프를 사용할 때 변수의 이름으로'i'를 사용하여, 당신은 항상 그 값 – RafaelC
을이 코드는 다소 어려운 것입니다 덮어 쓰기있어 한 문자 변수 이름을 사용하기 때문에 이해합니다. 변수에 설명적인 이름을 사용하는 것이 좋습니다 (일반적으로). –
목록이 작동하지 않습니다. 변수, 정수 및 문자열이 있습니다 ...그런 다음, 당신은'range'에 의해 반환 된 인덱스를 분리하고 있습니다 : 안돼, 그럼 당신은 당신의 유니 코드리스트 객체 중 하나에 추가하고 있습니다 : 절대 안됩니다 ... 불분명합니다 ... –