On 12/12/2013 20:40, Shyam Parimal Katti wrote:

I have a list of sql queries, some which are split across multiple list
elements e.x.
['drop table sample_table;', 'create table sample_test', '(col1 int);',
'select col1 from', ' sample_test;']

A semi-colon in the string value indicates the termination of a sql
query. So the expected out come is a conversion to a list of valid sql
['drop table sample_table;', 'create table sample_test (col1 int);',
'select col1 from sample_test;']

Here is the code that does that:

sample = ['drop table sample_table;', 'create table sample_test', '(col1
int);', 'select col1 from', ' sample_test;']
pure_sqls = []
query_holder= ''
for each_line in sample:
query_holder += each_line
if query_holder.endswith(';'):
query_holder = ''

Is there a way to do this by eliminating explicit creation of new
list(pure_sqls) and a temporary variable(query_holder)? Using list
comprehension? Though I don't want to put the shorter version in
production(if it is difficult to understand), I am looking if this can
be done with list comprehension since I am trying to learn list
comprehension by using it in such scenarios.

I don't think this can be done with a list comprehension. As you appear
to have a perfectly good piece of code, if it ain't broke, don't fix it
:) Maybe change one line.

if query_holder[-1] == ';':

My fellow Pythonistas, ask not what our language can do for you, ask
what you can do for our language.

Mark Lawrence

Search Discussions

Discussion Posts


Follow ups

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 3 of 7 | next ›
Discussion Overview
grouppython-list @
postedDec 12, '13 at 8:40p
activeDec 13, '13 at 10:07a



site design / logo © 2022 Grokbase