from csv import DictReader as reader
import json
with open('file.json', 'w') as jsonfile:
with open('file.csv', 'r') as csvfile:
fieldnames = ("FirstName","LastName","BirthYear","Message")
for row in reader(csvfile, fieldnames):
json.dump(row, jsonfile)
jsonfile.write('\n')
def csv_reader(file_name):
for row in open(file_name, "r"):
yield row
import sys
print('sys.getsizeof()')
list = [i * 2 for i in range(10000)]
print(sys.getsizeof(list))
# 87616
generator = (i ** 2 for i in range(10000))
print(sys.getsizeof(generator))
# 112
from itertools import chain
list_3d = [[[0, 1], [2, 3]], [[4, 5], [6, 7]]]
list(chain.from_iterable(list_3d))
# [[0, 1], [2, 3], [4, 5], [6, 7]]
list(chain.from_iterable(chain.from_iterable(list_3d)))
# [0, 1, 2, 3, 4, 5, 6, 7]
flatten = lambda x: list(chain.from_iterable(x))
flatten(list_3d)
# [[0, 1], [2, 3], [4, 5], [6, 7]]
flatten(flatten(list_3d))
# [0, 1, 2, 3, 4, 5, 6, 7]
Capitalize the last character in a string
# Solution with short variable names
hh = lambda ww, cc: [ww, cc, ww.rfind(cc)]
gg = lambda ss, rr, cc: ss[:cc] + rr.upper() + ''.join([i for i in ss[cc+1:]])
[i for i in map(lambda x: gg(*hh('abcdabcdabcd', x)), list('abcd'))]
# ['abcdabcdAbcd', 'abcdabcdaBcd', 'abcdabcdabCd', 'abcdabcdabcD']
# solution with readable variable names
str_char_rfind = lambda word, char: [word, char, word.rfind(char)]
cap_last_char = lambda word, char, rfound_pos: word[:rfound_pos] + char.upper() + ''.join([i for i in word[rfound_pos+1:]])
[i for i in map(lambda x: cap_last_char(*str_char_rfind('abcdabcdabcd', x)), list('abcd'))]
# ['abcdabcdAbcd', 'abcdabcdaBcd', 'abcdabcdabCd', 'abcdabcdabcD']
# solution with readable variable names and a convenience function
str_char_rfind = lambda word, char: [word, char, word.rfind(char)]
cap_last_char = lambda word, char, rfound_pos: word[:rfound_pos] + char.upper() + ''.join([i for i in word[rfound_pos+1:]])
repeat_string_and_cap_last_char = lambda word, t: [i for i in map(lambda x: gg(*str_char_rfind(word * t, x)), list(word))]
repeat_string_and_cap_last_char('abcd', 3)
# ['abcdabcdAbcd', 'abcdabcdaBcd', 'abcdabcdabCd', 'abcdabcdabcD']