파일에 저장된 다음 문자열에서 목록을 만들고 싶습니다.
neurovaultcols_050817 1073
neurovaultcols_050817 1606
다음은 코드입니다.
repo_dataset=open("G:\\My Drive\\single.txt")
k=[]
for x in repo_dataset:
x.strip().strip("").split("\t")
k.append(x)
for b in k:
print(b[0])
이제를 사용할 때 print(b[0])
"aneurovaultcols_050817"을보고 싶습니다. 그리고를 사용할 때 print(b[1])
1073과 1606을보고 싶습니다.하지만 첫 글자 만 보입니다.
n
n
내가 뭘 잘못 했어?
로 변경:
with open("G:\\My Drive\\single.txt", 'r') as f:
k = [line.strip().split('\t') for line in f]
for b in k:
print (b[0], b[1])
문제는 다음과 같습니다.
for x in repo_dataset:
x.strip().strip("").split("\t")
k.append(x)
기본적으로 이것은 " x
열린 파일 ( repo_dataset
)의 행 ( )에 대해 탭에서 행을 제거하고 분할"하는 것입니다. 목록을 반환하지만 캡처 하지 않으면 전체 줄을 k
. 우리가 그것을 분해하면 :
for x in repo_dataset:
# lets say 'x' is currently 'neurovaultcols_050817 1073'
x.strip().strip("").split("\t")
# 'neurovaultcols_050817 1073'.strip() removes leading & trailing characters
# 'neurovaultcols_050817 1073'.strip("") is not necessary
# 'neurovaultcols_050817 1073'.split('\t') returns ['neurovaultcols_050817', '1073']
# but you don't store the list that gets returned so it does nothing essentially
k.append(x)
# k.append('neurovaultcols_050817 1073') is what happens
따라서 나중에 k
다음과 같이 보입니다.
k = ['neurovaultcols_050817 1073', 'neurovaultcols_050817 1606']
따라서 for
루프는 'neurovaultcols_050817 1073'
첫 번째 b
. 따라서에 대한 호출 은 문자열의 시작 부분 을 b[0]
나타냅니다 'n'
!
변경 사항은 게시 된대로 원본 코드에 매우 간단합니다 (내 코드를 권장하지만).
repo_dataset=open("G:\\My Drive\\single.txt")
k=[]
for x in repo_dataset:
y = x.strip().split("\t") # change
k.append(y) # change
for b in k:
print(b[0])
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다