2015-02-01 3 views
0
lines = [["absb asdjhasd", "sadjhj sdhjsdh"], ["asjhjhad asdasd", " ashjhfdj asdasd"]] 
for z in lines: 
    for l in z: 
     l = l.split() 

print lines 

어떻게 그 줄에는 현재 분할이 포함되어 있습니까? 어딘가에 복사본이있는 것 같습니다. Python 2.7파이썬리스트 직접 변경하기

+0

나는 그것의 균열을 가진 각 끈을 교환하고 싶다. 그러나'l = l.split()'을했을 때 이것은 – user4517908

+0

이라는 에러를 던진다. 실제 변수'lines'을 바꾸지는 않는다. – Alfie

답변

2

l.split()은 원래 문자열 개체에 영향을주지 않고 분할 결과를 반환하고 l =은 목록 항목이 아니라 변수 만 다시 바인딩합니다.

당신은 너무 인덱스를 추적해야 할 것 :

for z in lines: 
    for index, l in enumerate(z): 
     z[index] = l.split() 

을하거나 문자열을 분할하여 목록을 다시 작성하는 nested list comprehension을 사용할 수

lines = [[l.split() for l in z] for z in lines] 
0

당신은 문자열로 교체 할 경우에 사용할 수 있습니다 그것의 쪼개짐을 가진

lines = [[l.split() for l in line] for line in lines]