S
Shyam Parimal Katti
I have a list of tuples where the number of rows in the list and the number
of columns in tuples of the list will not be constant. i.e.
list = [(a1,b1, …z1), (a2,b2, …, z2),…. ,(am,bm, … , zm )]. It can be
compared to the SQL results, as the number of columns change in the sql,
the number of columns change in the list of tuples as well.
I have to iterate through each element of each tuple in the list, perform
some checks on the value, convert it and return the modified values as a
new list of tuples.
i.e.
list_value = [(‘name1’, 1234, ‘address1’ ), (‘name2’, 5678, ‘address2’),
(‘name3’, 1011, ‘addre”ss3’)]
I need to access each value to check if the value contains a double quote
and enclose the string containing double quote with double quotes. The
transformation should return
list_value = [(‘name1’, 1234, ‘address1’ ), (‘name2’, 5678, ‘address2’),
(‘name3’, 1011, ‘”addre”ss3”’)]
The simplest approach for me would be to do this:
mod_val = [transform(row) for row in list_value]
def transform(row):
mod_list=[]
while index < len(row):
.... if isinstance(row[index],basestring):
.... if '"' in row[index]:
.... mod_list.append('"'+row[index]+'"')
.... else:
.... mod_list.append(row[index])
.... index = index+1
.... return mod_list
Is there a way to make the code concise using list comprehension?
of columns in tuples of the list will not be constant. i.e.
list = [(a1,b1, …z1), (a2,b2, …, z2),…. ,(am,bm, … , zm )]. It can be
compared to the SQL results, as the number of columns change in the sql,
the number of columns change in the list of tuples as well.
I have to iterate through each element of each tuple in the list, perform
some checks on the value, convert it and return the modified values as a
new list of tuples.
i.e.
list_value = [(‘name1’, 1234, ‘address1’ ), (‘name2’, 5678, ‘address2’),
(‘name3’, 1011, ‘addre”ss3’)]
I need to access each value to check if the value contains a double quote
and enclose the string containing double quote with double quotes. The
transformation should return
list_value = [(‘name1’, 1234, ‘address1’ ), (‘name2’, 5678, ‘address2’),
(‘name3’, 1011, ‘”addre”ss3”’)]
The simplest approach for me would be to do this:
mod_val = [transform(row) for row in list_value]
def transform(row):
mod_list=[]
while index < len(row):
.... if isinstance(row[index],basestring):
.... if '"' in row[index]:
.... mod_list.append('"'+row[index]+'"')
.... else:
.... mod_list.append(row[index])
.... index = index+1
.... return mod_list
Is there a way to make the code concise using list comprehension?