에서 가져 오기 목록의 마지막 편지를 자르는 것은이 내 코드입니다 각 개별 요소의 문자를 잘라?CSV 파일
목록의 형식으로 가져 오기 CSV 파일에서 팁과 몇 가지 다른 차이가있는 특정 요소의 마지막 문자를 바꾸고 CSV 파일에 다시 저장하고 싶습니다. 누구든지이 문제를 해결하는 방법을 알고 있습니까?
에서 가져 오기 목록의 마지막 편지를 자르는 것은이 내 코드입니다 각 개별 요소의 문자를 잘라?CSV 파일
목록의 형식으로 가져 오기 CSV 파일에서 팁과 몇 가지 다른 차이가있는 특정 요소의 마지막 문자를 바꾸고 CSV 파일에 다시 저장하고 싶습니다. 누구든지이 문제를 해결하는 방법을 알고 있습니까?
reader
은 각 반복마다 줄에있는 모든 항목의 목록을 제공하는 반복기입니다. 이 반복자 활용 유용한 해결책 :
import csv
def remove_cruft(s):
return s[:-1]
with open('name.csv', 'r') as f:
reader = csv.reader(f)
my_list = [[remove_cruft(item) for item in line] for line in reader]
print(my_list)
출력 :
[['robi'], ['marudzi'], ['biega']]
콘텐츠에 기초 :
name.csv
의
robić
marudzić
biegać
.
실제 문자열이 아닌 목록을 전달하기 때문에 이러한 현상이 발생합니다.
>>> s = [['robić'], ['marudzić'], ['biegać']]
>>> s[0]
['robić']
>>> s[0][:-1]
[]
>>> s[0][0]
'robić'
>>> s[0][0][:-1]
'robi'
이는 데이터가 2D 목록으로 구성되기 때문입니다. 다음과 같이 데이터를 구조화 한 경우 :
>>> s = ['robić', 'marudzić', 'biegać']
>>> [remove_cruft(a) for a in s]
['robi', 'marudzi', 'biega']
이렇게하면됩니다.
이 코드는이 문제를 해결합니다.
import csv
with open('name.csv', 'r') as f:
reader = csv.reader(f)
my_list = list(reader)
print(my_list)
def remove_cruft(s):
return s[:-1]
new_list=[remove_cruft(s) for s in my_list[0]]
print(new_list)
출력 : - 사실
[['robić', 'marudzić', 'biegać']]
['robi', 'marudzi', 'biega']
, 코드가 생성하는 출력은 다음과 같습니다 -
가[['robić', 'marudzić', 'biegać']]
[['robić', 'marudzić']]
당신을 my_list를 통과하여 수행 할 수있는) (remove_cruft하는 문자열을 통과해야합니다 [0]